我在IE7上调用jQuery AJAX时遇到了问题。这段简单的代码在FF和Opera上运行良好。但在IE7上需要3-5秒。-这比FF慢20倍!加载内容是纯超文本标记语言和内联JavaScript代码。没有JS渲染。我甚至关闭了内联JavaScript代码。但是还是很慢。
$('#block').load('some url');如何克服这个问题?任何帮助都将不胜感激。
发布于 2009-04-24 20:44:25
如何克服这个问题?任何帮助都将不胜感激。
在页面加载时检测IE7,并提供一个独立的建议,建议不喜欢缓慢加载的用户进行升级。
发布于 2009-04-24 20:45:16
你真的无能为力。IE的javascript引擎比其他任何引擎都慢得多(事实上,它很糟糕)。你可以试试IE8。这样更好..。稍微..。
发布于 2009-06-02 12:08:37
我必须看到实际的代码,但面对类似的问题,我不得不去掉jQuery.load()。相反,我使用了带有"html“数据类型的jQuery.get(),并编写了自己的回调,其中我通过.innerHTML注入了数据。这样做,我还遇到了另一个bug (它是一个标签,IE不允许在它上面有.innerHTML ),所以我写了一个丑陋的变通办法。
生成的代码类似于:
// 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");
}
} https://stackoverflow.com/questions/787500
复制相似问题