我正在工作的应用程序需要快速响应。客户端应该通过填写表格来创建配置。表单上的每次修改都会将表单发送到服务器进行验证。服务器响应一个新的 HTML 页面。然后在浏览器中呈现该页面。我的任务是在这个过程中添加 Ajax,从而改善用户体验。这是我到目前为止所做的:
function doSubmitWithAjax(){
var datum = $('#hiddenvars').serialize();
var ajax=$.ajax({
type : 'POST',
url : 'frontend',
cache : false,
dataType : 'html',
data : datum
});
ajax.success(function(XHR,text,jqXHR){
var dom = document.createElement('div');
dom.innerHTML=XHR;
var bod = $('#hiddenvars',dom);
$('#hiddenvars').replaceWith(bod);
});
ajax.error(function(jqXHR, textStatus, errorThrown){
alert('request error '+errorThrown);
});
}
XHR 是从服务器接收的 HTML 页面。基本上我只想检索表单 (#hiddenvars) 并将其放置在 DOM 中已经存在的表单上。
doSubmitWithAjax()
每次表单发生更改时都会触发该函数。目前的实现适用于 Firefox 和 Chrome。IE的响应时间太长了。我使用了一些工具来检查需要花费这么多时间的东西,结果发现这replaceWith()
比 FF(0.2 秒)慢(1.3 秒)。
我的问题:如何提高 IE 的响应时间?我可以用什么代替 replaceWith() ?我试过了: $('#hiddenvars').empty().replaceWith(bod);
因为我不需要 DOM 中的替换表单,但仍然很慢。
谢谢!