问一个效率问题,大数量元素的批量隐藏和显示

我就是大神 2013-08-16 11:25:53
最近做考试系统,试卷基本需要100多题,分几个类型。
我现在是一次性读取所有题,首次加载第一个类型的题。我这样写:
$(".item").css("display","none");
$(".item_"+1).css("display","block");
ie7和搜狗类型ie内核的浏览器,页面会卡几秒钟进行上述操作。感觉很不好。我也试着不用class操作。但还是会卡。请问如果这种情况下该怎么弄呢?
 function initQues(start,end){
for(var i=start;i<=end;i++){
$("#d_"+i).css("display","block");
}
//其他的循环隐藏
}
...全文
205 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2013-08-16
  • 打赏
  • 举报
回复
数据加载到js 中,不用全部 生成html. 需要显示时。才设置 innerHTML
街头小贩 2013-08-16
  • 打赏
  • 举报
回复
分段请求,先发出1-20(多少看你了)。如果点击下一页了,再传20-40的题,像小时候的试卷哪样
我就是大神 2013-08-16
  • 打赏
  • 举报
回复
引用 1 楼 KongHuLu 的回复:
比如有五个类型,你试试划分五个不同的div,然后控制这个大div的显示隐藏
好像也只能这样了,还得后台拼字符串
潮起潮落 2013-08-16
  • 打赏
  • 举报
回复
比如有五个类型,你试试划分五个不同的div,然后控制这个大div的显示隐藏
KK3K2005 2013-08-16
  • 打赏
  • 举报
回复
先$出所有要操作的元素 如果页面元素没有变化 可以先缓存起来 然后在进行 display操作 试试看
KeepSayingNo 2013-08-16
  • 打赏
  • 举报
回复
可以用JQuery选择器,将ID分组命名,每一组的ID名称前缀相同,这样就可以用下面语句
$("label[id^='lbl']").text("123");
我的body里面的内容是这样写的
label id="lbl1"></label>
<label id="lbl2"></label>
ILOVE_ASPNET 2013-08-16
  • 打赏
  • 举报
回复
(1)分页去服务端取 (2)一次性丛服务端取出来,在客户端生成一个数据格式文件,保存进去,然后根据操作的时候读取这个文件里面的数据, 不要一次性全部加载到界面去,这样量大的话,浏览器会卡的。
tony4geek 2013-08-16
  • 打赏
  • 举报
回复
一个就是根据类型放div,还有类似ajax 瀑布流,鼠标滚动显示。看你需要。
潮起潮落 2013-08-16
  • 打赏
  • 举报
回复
引用 4 楼 hch126163 的回复:
数据加载到js 中,不用全部 生成html. 需要显示时。才设置 innerHTML
这个方法也好,动态生成DOM。 可以结合来用。

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧