最近的项目中,有用到jQuery的ajax请求返回一个弹出网页,网页的内容是ajax返回的内容,如果用$('#id').html(resp)这个方法,页面加载的很慢,如果用$('#id')[0].innerHTML=resp,则加载的很快,但是resp中的JS代码不能执行,不知道各位是否有遇到这种情况?

解决方案 »

  1.   

    那你试过$('#id').text(resp)吗?试试看
      

  2.   

    但是resp中的JS代码。这里有js代码的话,$('#id').html(resp)加载,解析,执行,渲染,加载js是阻塞式的。而$('#id')[0].innerHTML=resp直接渲染,效率自然有所不同。
      

  3.   

    jQuery没有html方法加载慢的bug,
    可能就是因为js代码的执行造成的加载缓慢,你用innerHTML没有执行js代码,自然会快些
    你可以去掉js代码,再测试两种方法的执行速度,然后再说话
      

  4.   

    个人认为js和html还是分开加载,而且考虑js先加载,因为js代码很重复性高,你这种加载方法对网络和客户端性能还是有影响的。
      

  5.   

    1可以先确认下原因2可以加载前隐藏 显示等待条  加载完毕 用加载的html中带的js 隐藏 等待条