HTML下table的加载

刚刚在编写表格的时候出现了一个问题:我在为表格一个td中的a标签绑定事件时,发现无法绑定成功。

经过调试,了解到:绑定不成功的原因是,在HTML加载时,在td中的a标签并未加载出来,于是乎我的绑定不成功。

绑定的代码是写在</body>的上一行中,处于body的最末尾。按照以往的经验,那么我们应该能够顺利的绑定成功。

然而现实却不会让你那么顺利。

我尝试着将代码放到在a标签下方,于是绑定又成功了。

或者将绑定事件的代码套在ready()中,于是绑定继续成功。

因此真相只有一个——在table加载的时候,尽管浏览器已经遍历了整个HTML文档,但是table中的a标签却还没加载到DOM树之中。于是JS代码找不到该元素。

因此,我严重怀疑table中的加载速度时很慢的。在整个HTML文档遍历完之后,table树还是没有完全的搭建好,导致dom树不完整。

那么table的加载包括那些步骤呢?

table是一个会自适应调整的元素。它会让在自身内部的元素居中对齐,并合理的分配每个td的宽度高度。改动其中一个td的元素,往往牵一发而动全身,会让整个table元素重绘重排。

因此,table的加载必然是一个非常复杂的过程,其中包括的宽度的计算,元素的布局,各种各种。

以上是我的想法,诸位若有什么想法,请务必与我分享。

感谢阅读^ ^.

HTML table的懒加载可以通过使用element-ui的table组件来实现。在该组件中,可以通过设置`lazy`属性为`true`来开启懒加载功能。懒加载可以帮助我们在表格中只加载当前可见的数据,而不是一次性加载所有数据,从而提高页面加载速度和性能。 下面是一个示例代码,演示了如何在HTML table中实现懒加载: ```html <template> <div> <el-table :data="tableData" :lazy="true" :load="loadData" ref="lazyTable" > <!-- 表格列定义 --> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <!-- 其他列... --> </el-table> </div> </template> <script> export default { data() { return { tableData: [], // 表格数据 currentPage: 1, // 当前页码 pageSize: 10, // 每页显示的条数 }; }, methods: { // 加载数据 loadData() { // 模拟异步请求数据 setTimeout(() => { // 根据当前页码和每页显示的条数计算起始索引和结束索引 const startIndex = (this.currentPage - 1) * this.pageSize; const endIndex = startIndex + this.pageSize; // 从后端获取数据,这里使用假数据 const response = [ { name: "张三", age: 20 }, { name: "李四", age: 25 }, // 其他数据... ]; // 更新表格数据 this.tableData = response.slice(startIndex, endIndex); // 更新总条数,用于分页 this.$refs.lazyTable.total = response.length; }, 1000); // 模拟异步请求延迟 }, }, mounted() { // 初始化加载数据 this.loadData(); }, }; </script> ``` 在上述代码中,我们使用了`el-table`组件,并设置了`lazy`属性为`true`,以及`load`属性为`loadData`方法。`loadData`方法用于加载数据,其中我们可以根据当前页码和每页显示的条数来计算起始索引和结束索引,然后从后端获取数据,并更新表格数据和总条数。 通过以上代码,我们可以实现HTML table的懒加载功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值