Internet Explorer中的Javascript/jquery速度-Ajax数据

Internet Explorer中的Javascript/jquery速度-Ajax数据,javascript,jquery,ajax,internet-explorer,pagespeed,Javascript,Jquery,Ajax,Internet Explorer,Pagespeed,我正在尝试提高IE上的速度,以便在我的页面上使用以下javascript代码: 通过在互联网上搜索一些提高Javascript速度的技巧,我创建了另一个版本 我没有将值存储在字符串中,而是使用中的数组将值存储在循环中,并使用array.join在页面上显示这些值 function ajaxQuery($obj) { var domObj=[], i=0; var startEXP="<div class='notesclick'><div>

我正在尝试提高IE上的速度,以便在我的页面上使用以下javascript代码:

通过在互联网上搜索一些提高Javascript速度的技巧,我创建了另一个版本

我没有将值存储在字符串中,而是使用中的数组将值存储在循环中,并使用array.join在页面上显示这些值

function ajaxQuery($obj)
  {
      var domObj=[], i=0;
      var startEXP="<div class='notesclick'><div><img src='img/notes.png' width='25' height='25' alt='notes'></div><div class='notes'><ul>";
     var endEXP="</ul></div></div>";
      $obj.find('Course').each(function(){

          var course=$(this);
                    var Code = course.attr("ACAD");
                    var Bof = course.attr("Name");
                    var Yrs = course.attr("Duration");
                    var S2= course.attr("S2Entry");
                    var Stream = course.attr("FSstream"); 
                    var GPA = course.attr("GPA"); 
                    var English = course.attr("EngGrade");                      var addNotes=startEXP;

                    //find notes
                    $(this).find('Note').each(function(){

                        var Notes=$(this).attr("Text");

                        addNotes=addNotes+"<li>"+Notes+"</li>";


                        });
                addNotes=addNotes+endEXP;

                if(addNotes==startEXP+endEXP)
                {
                    addNotes="&nbsp;";
                }

                if(S2=="Y")
                {
                S2="<span class='red'>+</span>";    
                }else
                {
                    S2="";
                }

    domObj[i]='<tr><td>'+Code+' '+S2+'</td><td>'+Bof+'</td><td>'+Yrs+'</td><td>'+Stream+'</td><td>'+GPA+'</td><td>'+English+'</td><td>'+addNotes+'</td></tr>';          

    i++;

    /*$('#gpa tbody').append('<tr><td>'+Code+' '+S2+'</td><td>'+Bof+'</td><td>'+Yrs+'</td><td>'+Stream+'</td><td>'+GPA+'</td><td>'+English+'</td><td>'+addNotes+'</td></tr>');  */

  }); //end course

  $('table#gpa tbody').append(domObj.join(""));

     }
下面是调用init()的主函数:

$(document).ready(function(){        




     $.ajax({
            type: "GET",
            url: "../loader/UNSW_UGRAD_COURSE_DATA.xml",
            dataType: "xml",
            success: function(xml) {
                ////console.log("Reading Success");
                var oTable=$('#gpa').dataTable( {
    "aLengthMenu": [[10, 30, 50, 100, -1], [10, 30, 50, 100, "All"]],
    "iDisplayLength" : -1,
    "oLanguage": {
"sSearch": "Search by keyword" 
}
  });
                init( $(xml), 2014, "all", oTable);
                streamChanger();

                $('#year_btn').on("change", function(){
                setYears($(xml), oTable);   
                streamChanger();                
                }); 

            $('#faculty_btn').on("change", function(){
                setOptions($(xml), oTable);     
                                                                           streamChanger();                             

                   });                  
                },
                error:function(){
                alert("Reading failed");
  }

     }); //end ajax function    


    }); /* end ready */
但当我把它加载到IE中时,它仍然需要和gpa页面差不多的时间。
有人能告诉我如何提高此页面的速度吗?

在发布之前,最好将您的示例减少到显示问题所需的最低限度。这样,其他人可以专注于解决您的问题,而不是试图找到它。嗨,罗布,我现在编辑了这篇文章,以便人们可以专注于代码。字符串连接技巧只是加快了连接部分的速度。当您需要连接100多个字符串时,它会有所帮助,但在其他情况下没有多大帮助。IE中的DOM表操作很慢,append的jQuery代码很复杂,我不知道它是如何实现的。它可以将HTML包装在标记中以创建一个完整的表,然后将其插入一个临时div或类似文件中,然后将子节点(TRs、TDs等,视情况而定)放入目标表中。至少在某些事情上似乎是这样。
$(document).ready(function(){        




     $.ajax({
            type: "GET",
            url: "../loader/UNSW_UGRAD_COURSE_DATA.xml",
            dataType: "xml",
            success: function(xml) {
                ////console.log("Reading Success");
                var oTable=$('#gpa').dataTable( {
    "aLengthMenu": [[10, 30, 50, 100, -1], [10, 30, 50, 100, "All"]],
    "iDisplayLength" : -1,
    "oLanguage": {
"sSearch": "Search by keyword" 
}
  });
                init( $(xml), 2014, "all", oTable);
                streamChanger();

                $('#year_btn').on("change", function(){
                setYears($(xml), oTable);   
                streamChanger();                
                }); 

            $('#faculty_btn').on("change", function(){
                setOptions($(xml), oTable);     
                                                                           streamChanger();                             

                   });                  
                },
                error:function(){
                alert("Reading failed");
  }

     }); //end ajax function    


    }); /* end ready */