• 请不要在回答技术问题时复制粘贴 AI 生成的内容
halicando
V2EX  ›  程序员

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

  •  
  •   halicando · Jun 26, 2013 · 4044 views
    This topic created in 4778 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
    xieranmaya
        1
    xieranmaya  
       Jun 27, 2013 via Android
    难道是用的同步请求
    ijse
        2
    ijse  
       Jun 27, 2013   ❤️ 1
    用审查元素看下,先找出哪块费时最多。。
    halicando
        3
    halicando  
    OP
       Jun 27, 2013
    @xieranmaya 默认应该是异步的
    otakustay
        4
    otakustay  
       Jun 27, 2013   ❤️ 1
    如果鼠标点击没反应,那肯定不是网络传输,而是脚本在执行。jQuery的.load函数是使用dataType: html去加载资源,这意味着jQuery会把返回的HTML解析成DOM再使用,而这个解析过程要处理<script>标签等一堆问题(我记得以前版本jQuery处理这个的函数叫.clean,是个内部函数,现在不知道咋样了),HTML比较大的时候卡住也是可能的
    halicando
        5
    halicando  
    OP
       Jun 28, 2013
    @ijse
    @otakustay
    @xieranmaya
    问题已解决,经js调试,发现事件触发后,js加载时间长,数据多,导致速度异常,后来终于找到原因,是内嵌templates的base页包含了过多的不必要的脚本,导致加载时速度变慢。
    谢谢大家。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:34 · PVG 19:34 · LAX 04:34 · JFK 07:34
    ♥ Do have faith in what you're doing.