这种情况是jQuery的.load()的问题吗?

2013-06-26 20:21:11 +08:00
 halicando
通过点击一个链接,在某个div里加载一个带参数的动态url(比如"/user/htmlfiles/{{id}}/"),返回的是另一个html页面的内容。用了jQuery的.load(),感觉加载得好慢啊,本机测就能觉得有延迟,还能忍。在服务器上测试访问的时候,感觉页面就卡死了,至少有2、3秒时间鼠标点击没反应。

但是,如果把url放在浏览器里直接向服务器请求,速度却很快,完全没有等待的感觉,所以能肯定不是网速、服务器或者数据库设置的问题,大家有碰到过同样的情况吗?有什么好的解决方法?
3428 次点击
所在节点    程序员
5 条回复
xieranmaya
2013-06-27 12:19:02 +08:00
难道是用的同步请求
ijse
2013-06-27 12:40:27 +08:00
用审查元素看下,先找出哪块费时最多。。
halicando
2013-06-27 14:11:07 +08:00
@xieranmaya 默认应该是异步的
otakustay
2013-06-27 21:03:39 +08:00
如果鼠标点击没反应,那肯定不是网络传输,而是脚本在执行。jQuery的.load函数是使用dataType: html去加载资源,这意味着jQuery会把返回的HTML解析成DOM再使用,而这个解析过程要处理<script>标签等一堆问题(我记得以前版本jQuery处理这个的函数叫.clean,是个内部函数,现在不知道咋样了),HTML比较大的时候卡住也是可能的
halicando
2013-06-28 10:53:38 +08:00
@ijse
@otakustay
@xieranmaya
问题已解决,经js调试,发现事件触发后,js加载时间长,数据多,导致速度异常,后来终于找到原因,是内嵌templates的base页包含了过多的不必要的脚本,导致加载时速度变慢。
谢谢大家。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/73729

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX