Javascript 在DOM中加载大量节点时firefox与chrome的性能

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

我正在编写一个Web应用程序,其中大量的文本被带到客户端进行处理,然后转换为其他内容。。。。然后扔进DOM

我正在使用jquery中的ajax查询

    $.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有一些渲染问题。