复选框检查缓慢
checkbox slow to check
我使用复选框来显示或隐藏jqGrid中的列,因为我有很多很多行,每个行的单元格中都有很多值,所以当我选中复选框时,它需要很长时间才能完成检查。
我希望复选框立即选中,然后执行耗时的jqGrid操作。例如,
$('input[type="checkbox"]').click(function(e) {
// First render/unrender the checkmark
// Next do some very time-consuming jqGrid operations
}
我怎样才能做到这一点?按照目前的情况,它首先执行jqGrid调用,然后只在最后检查复选框。选中复选框需要整整两秒钟的时间!
尝试将耗时的代码放入超时:
// immediate stuff here
setTimeout(function() {
// time-consuming stuff here
},1);
理想情况下,您应该将这些耗时的东西放在WebWorker中,以免冻结UI。
您可以在页面和脚本中进行优化。
-
将脚本放在
<body>
标记的末尾之前 - 使用工具来提高性能:我能推荐的最好的工具是dynaTrace AJAX Edition,它是IE的探查器(通常是JS性能最慢的,所以实际上是一个很好的开始优化的测试环境)。它会给你一个完整的细分,向你展示重复的方法调用、调用树以及你的CPU周期。查看他们的使用/功能教程,开始学习
- 使用大型数据集改进jQuery性能主题包括:
使用JavaScript原生的for()循环,而不是jQuery的$.each()助手
作用不要在循环中向DOM追加元素。
如果有许多元素要插入到DOM中,请将它们包围起来
使用父元素表演不要使用字符串串联,而是使用数组的join()方法一根很长的绳子。
使用setTimeout()函数进行长列表循环和串联
功能。最小化您的脚本
希望这些将足以获得更好的性能
我相信您可以在一个.click()
函数中渲染/取消渲染复选标记,然后在另一个.click()
中执行jqGrid操作。即
$('#selector').click(
function(){//rendering stuff}
).click(
function(){//computational stuff}
);
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 对iPad上的点击事件反应缓慢
- 如何检查管道中未定义的项目
- 主干-不管怎样,检查事件以前是否绑定过
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 递归使用 eval() 是检查程序执行的好方法吗?
- 检查onsubmit doenst work jquery contactform上的函数
- JavaScript 检查隐藏字段中的值并将其设置为隐藏字段值
- Ajax请求文档就绪会导致jquery加载缓慢
- API密钥使用和检查示例
- 如何让程序检查所选单词中是否有按键
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 用于检查数组中是否存在元素的javascript自定义方法
- 如何检查字符串的一部分与数组匹配
- Jquery如何检查今天的时间大于使用给定时间
- 使用javascript反复检查用户在facebook上的登录状态
- 使用 jQuery 检查所有值是否为空或已填充
- 为什么我用于检查所需输入字段的jQuery脚本如此缓慢
- 复选框检查缓慢