首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IE7上的jQuery Ajax这么慢?

为什么IE7上的jQuery Ajax这么慢?
EN

Stack Overflow用户
提问于 2009-04-24 20:41:03
回答 3查看 13.6K关注 0票数 12

我在IE7上调用jQuery AJAX时遇到了问题。这段简单的代码在FF和Opera上运行良好。但在IE7上需要3-5秒。-这比FF慢20倍!加载内容是纯超文本标记语言和内联JavaScript代码。没有JS渲染。我甚至关闭了内联JavaScript代码。但是还是很慢。

代码语言:javascript
复制
$('#block').load('some url');

如何克服这个问题?任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2009-04-24 20:44:25

如何克服这个问题?任何帮助都将不胜感激。

在页面加载时检测IE7,并提供一个独立的建议,建议不喜欢缓慢加载的用户进行升级。

票数 16
EN

Stack Overflow用户

发布于 2009-04-24 20:45:16

你真的无能为力。IE的javascript引擎比其他任何引擎都慢得多(事实上,它很糟糕)。你可以试试IE8。这样更好..。稍微..。

票数 3
EN

Stack Overflow用户

发布于 2009-06-02 12:08:37

我必须看到实际的代码,但面对类似的问题,我不得不去掉jQuery.load()。相反,我使用了带有"html“数据类型的jQuery.get(),并编写了自己的回调,其中我通过.innerHTML注入了数据。这样做,我还遇到了另一个bug (它是一个标签,IE不允许在它上面有.innerHTML ),所以我写了一个丑陋的变通办法。

生成的代码类似于:

代码语言:javascript
复制
// Fetch data (GET method allows me to use browser cache)
$.get(url, get, function(htmlValues, txtStatus){
   that.populateSelects(htmlValues, that.selectContainers);
}, "html");


// Create <select>
var select = $('<span><select disabled="disabled"></select></span>');
$("<option>").attr("value", "").text("Loading...").appendTo(select.find("select"));


// Populate <select>
that.populateSelects = function(values, selectContainers){
   var span, select, tags;

   for(var i=0, len=selectContainers.length; i<len; i++){
      span = selectContainers[i];

      if($.browser.msie){
         tags = span.innerHTML.match(/^(<select[^>]+>).*(<\/select>)$/i);
         span.innerHTML = tags[1] + values + tags[2];
         select = span.firstChild;
      }else{
         select = span.firstChild;
         select.innerHTML = values;
      }
      $(select).removeAttr("disabled");
   }
} 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/787500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档