This topic created in 4882 days ago, the information mentioned may be changed or developed.
通过点击一个链接,在某个div里加载一个带参数的动态url(比如"/user/htmlfiles/{{id}}/"),返回的是另一个html页面的内容。用了jQuery的.load(),感觉加载得好慢啊,本机测就能觉得有延迟,还能忍。在服务器上测试访问的时候,感觉页面就卡死了,至少有2、3秒时间鼠标点击没反应。
但是,如果把url放在浏览器里直接向服务器请求,速度却很快,完全没有等待的感觉,所以能肯定不是网速、服务器或者数据库设置的问题,大家有碰到过同样的情况吗?有什么好的解决方法?
5 replies • 1970-01-01 08:00:00 +08:00
 |
|
难道是用的同步请求
|
 |
|
用审查元素看下,先找出哪块费时最多。。
|
 |
|
如果鼠标点击没反应,那肯定不是网络传输,而是脚本在执行。jQuery的.load函数是使用dataType: html去加载资源,这意味着jQuery会把返回的HTML解析成DOM再使用,而这个解析过程要处理<script>标签等一堆问题(我记得以前版本jQuery处理这个的函数叫.clean,是个内部函数,现在不知道咋样了),HTML比较大的时候卡住也是可能的
|
 |
|
@ ijse @ otakustay @ xieranmaya 问题已解决,经js调试,发现事件触发后,js加载时间长,数据多,导致速度异常,后来终于找到原因,是内嵌templates的base页包含了过多的不必要的脚本,导致加载时速度变慢。 谢谢大家。
|