Javascript 在DOM中加载大量节点时firefox与chrome的性能
我正在编写一个Web应用程序,其中大量的文本被带到客户端进行处理,然后转换为其他内容。。。。然后扔进DOM 我正在使用jquery中的ajax查询Javascript 在DOM中加载大量节点时firefox与chrome的性能,javascript,jquery,google-chrome,firefox,dom,Javascript,Jquery,Google Chrome,Firefox,Dom,我正在编写一个Web应用程序,其中大量的文本被带到客户端进行处理,然后转换为其他内容。。。。然后扔进DOM 我正在使用jquery中的ajax查询 $.ajax({ xhr: function () { var xhr = new window.XMLHttpRequest(); xhr.addEventListener("progress", function (evt
$.ajax({
xhr: function () {
var xhr = new window.XMLHttpRequest();
xhr.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total * 100;
$("#fetchProgress").attr("value", percentComplete);
}
}, false);
return xhr;
},
type: 'GET',
url: "/GetSomething",
data: {},
success: function (data) {
///process and dump to DOM//
var fileLines = data.split('\n');
var htmlString = '';
for (var i = 0; i < fileLines.length; i++) {
if (i == (highlightLine - 1)) {
htmlString += '<span id="highLoc" style="display:block"><font size="4" color="red">' + (i + 1) + '. ' + fileLines[i] + '</font></span>';
} else {
htmlString += '<span class="spanClass">' + (i + 1) + '. ' + fileLines[i];
}
if ((i % 1000) == 0) {
$("#textPlace").append(htmlString);
htmlString = '';
}
}
fileLines = null;
$("#textPlace").append(htmlString);
}
});
$.ajax({
xhr:函数(){
var xhr=new window.XMLHttpRequest();
xhr.addEventListener(“进度”,函数(evt){
if(evt.长度可计算){
var percentComplete=evt.loaded/evt.total*100;
$(“#fetchProgress”).attr(“值”,完成百分比);
}
},假);
返回xhr;
},
键入:“GET”,
url:“/GetSomething”,
数据:{},
成功:功能(数据){
///处理并转储到DOM//
var fileLines=data.split('\n');
var htmlString='';
对于(var i=0;i
当javascript在chrome中执行时,在firefox中呈现所需的时间会增加一倍。此外,chrome在代码执行时变得不负责任。但firefox却不是这样
我该怎么做才能让它在铬锅里工作??感谢您的帮助。
谢谢。我想我们应该看看你的成功功能是什么。你能在服务器上处理文本吗?很难说为什么在没有看到实际代码的情况下,你的函数在chrome中执行的时间比在firefox中执行的时间长。对于无响应问题,可以尝试限制渲染。这将花费更长的时间,但会一点一点地添加到DOM中,从而产生更快响应的错觉。@Jonas您好,我已经更新了success函数。我们在客户端对文件进行所有处理。我认为您应该明确地将该逻辑移到服务器端。还要注意,您给同一页面上的许多元素赋予了相同的id(span id=“highLoc”),这是不好的。@jonas我在网上搜索,发现chrome有一些渲染问题。