html的模板引入,rel="import" 未来的HTML模板引入方式

把HTML模板做成单独的文件有利于复用和缓存,前面两篇文章就是在推荐这种做法的。但我们一直都通过传统的方式来实现,需要各种模拟。抛开这些问题去看的话,实际上在WebComponents草案里引入了rel="import"的LINK标签,它就是用于载入外部HTML资源的。

目前这个特性只有在Chrome中手动开启flag的情况下才能勉强支持

6b416f0c367b

LINK[rel=import]其实有点类似于IFRAME,它引用的对象也是一个完整的文档,而不是文档片段,而且里面的SCRIPT也会执行,对跨域的资源访问同样有同源策略的限制。

console.log(tmp.import.body.innerHTML);

test

console.log("a.html");

6b416f0c367b

但和IFRAME不同的是,它和父文档的关系更密切。它自身确实是一个文档,可以通过link元素上的import属性访问,但在其内部的代码中,如果访问document则等同于访问父文档。这是很奇怪的设定,虽然内部的元素与父文档不在一个DOM树上(父文档上querySelector无法找到内部的元素),但他们却共用一个document对象,甚至共用一个全局环境。这意味着STYLE或SCRIPT之类的标签所执行的结果会影响到容器。

这个文字是红色的

varg="global";

body {color:red;}

test

console.log(tmp.ownerDocument==document);//true

console.log(tmp.ownerDocument.defaultView==window);//true

console.log(document.querySelector("h1"));//null

console.log(g);//"global"

6b416f0c367b

https://www.web-tinker.com/article/20637.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我可以给你一些具体的实现过程和代码示例。 首先,我们假设后端使用 Python,前端使用 jQuery 和 DataTables 插件,以及 Django 框架的视图模板语言。 1. 后端代码 首先,我们需要在后端编写一个 API 接口,用于返回按年龄排序后的用户数据。这里我们使用 Python 和 Django 框架来实现。 ```python # views.py from django.http import JsonResponse from app.models import User def sort_users_by_age(request): # 获取用户数据并按年龄排序 users = User.objects.all().order_by('age') # 将用户数据转换为 JSON 格式并返回 data = [{'id': user.id, 'name': user.name, 'age': user.age} for user in users] return JsonResponse(data, safe=False) ``` 上述代码中,我们首先从数据库中获取用户数据,并按照年龄排序,然后将数据转换为 JSON 格式并返回。注意,这里我们使用了 Django 的 JsonResponse 类来返回 JSON 格式的数据。 2. 前端代码 接下来,我们需要在前端使用 jQuery 和 DataTables 插件来实现分页功能。 ```html <!-- index.html --> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>User List</title> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.22/css/jquery.dataTables.css"> </head> <body> <table id="user-table" class="display" style="width:100%"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Age</th> </tr> </thead> <tbody> </tbody> </table> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.js"></script> <script> $(document).ready(function() { $('#user-table').DataTable({ 'processing': true, 'serverSide': true, 'ajax': { 'url': '/sort_users_by_age/', 'type': 'GET' }, 'columns': [ {'data': 'id'}, {'data': 'name'}, {'data': 'age'} ] }); }); </script> </body> </html> ``` 上述代码中,我们首先在 HTML 中定义一个 table 容器,用于显示用户数据。然后,我们引入 jQuery 和 DataTables 插件的 CSS 和 JavaScript 文件,并在 JavaScript 中使用 DataTables 插件来实现分页功能。 具体来说,我们在 DataTables 的初始化参数中指定了以下几个选项: - processing:开启 DataTables 内置的加载动画; - serverSide:启用服务器端模式,即将数据从后端加载到前端; - ajax:指定获取数据的 URL 和请求方式; - columns:指定要显示的列和数据。 注意,这里的 URL 是后端提供的 API 接口,我们在 JavaScript 中直接调用该接口来获取数据。 3. Django 视图模板代码 最后,我们需要在 Django 的视图模板中渲染上述 HTML 文件。 ```python # views.py from django.shortcuts import render def index(request): return render(request, 'index.html') ``` 上述代码中,我们使用 Django 的 render 函数来渲染 index.html 文件,并将其返回给用户。 至此,我们就完成了用户数据按年龄排序并分页显示的功能。当用户访问 index 页面时,前端会调用后端的 sort_users_by_age 接口来获取用户数据,并将数据显示到 table 容器中。用户还可以通过 DataTables 插件提供的分页功能来浏览数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值