使用ajax请求后,返回一段比较长的html代码,然后js将这段代码分别更新到页面的几个区域。
为什么我直接在url里访问ajax发送的请求,请求返回的内容很快就显示出来了
但是使用js获取后 用jquery的 .html() 方法更新到指定的区域很慢?
我自己觉得从发送请求到接受这个过程2中方式花的时间肯定是一样的,关键就是js处理花的时间了
有没有什么方法让js更新变快的?
[b]问题补充:[/b]
[code="java"]
ajax(url,param,success);
function success(msg){
$("#某个div").html(msg);
}
[/code]
js代码就这样的
我直接在浏览器访问url 页面很快就出来了.
用上面的方法就很慢很慢
因为jQuery的.html()[b][color=blue]会额外做一些事情[/color][/b]
……譬如把标签过滤掉-_-</p> <p>使用原味的</p> <p>[code="javascript"]<br> $("#某个div").innerHTML = msg;<br> [/code]</p> <p>会快一些 :P </p>
你可以试试,测试下你的js各个阶段执行的时间,确认一下是哪个方法比较慢,是出在ajax还是在html方法上面.
定位到慢的根本根源再来寻求解决的方法.
[code="js"] var start = 0;
var end = 0;
start = new Date().getTime()
//你的js函数执行
end = new Date().getTime();
alert((end - start) / 1000+'s');
[/code]
js的执行效率自然是比java慢多了,当然可能你写的js效率有可以再优化下
function success(msg){
var start = 0;
var end = 0;
start = new Date().getTime()
$("#某个div").html(msg);
end = new Date().getTime();
alert((end - start) / 1000+'s');
}
这样先测试一下,html函数执行的时间.确认下是ajax的问题还是html函数的问题.
按道理..html函数应该是一个比较快的函数..