【发布时间】:2011-11-26 07:28:32
【问题描述】:
我一直在尝试使用更多的 ajax 方法在页面上加载数据,主要是为了避免回发。我可以通过 ajax 调用轻松获取服务器构建的 html,并在 jquery 的 .append 或 .replaceWith 的帮助下将其添加到 dom 中非常简单。这两种方法在 chrome/firefox 中都非常快,但在 ie (7,8,9) 中非常慢。
$.ajax(
{
url: url,
dataType: 'html',
cache: false,
success: function (responseHtml)
{
//document.getElementById('targetElementId').outerHTML = responseHtml;
$('#targetElementId').replaceWith(responseHtml);
}
});
您将从我的代码块中看到,我也尝试使用非 jquery 方法。两条线在 ie 中的表现都非常糟糕。所以我的问题是,向页面添加大量 html 以使其不会压碎的最佳做法是什么?
【问题讨论】:
-
什么是responseHtml?你只打过一次这个电话吗?如果它像您的示例看起来一样简单,那么您无能为力。
-
老兄!快他永远不会:(
-
@BNL responseHtml 是来自服务器的纯标记。调用是按需加载的。在一种情况下,我使用它来过滤动态表(当前通过回发重新加载)。
-
不确定这是否有帮助,但应该使代码看起来更干净:$('#targetElementId').load(url)
-
@Rodolfo .load 会做同样的事情。另外,我无法缓存,所以我猜测 url 需要一些随机生成的值。 jquery's cache: false 为我很好地处理了这个:)
标签: jquery html ajax internet-explorer dom