这是我的代码:
<script>
function loadPage() {
function sendFormHelper(callback) {
var url = "/same-as-current-url";
var serializedForm = $('#form').serialize();
$.post(url, serializedForm, function(data) {
callback(data);
});
}
$('#form').off('submit').on('submit', function() {
sendForm(function(data) {
var mainResultCount = $(data).find('#main-result-count');
var mainList = $(data).find('#main-list');
$('#main-result-count').html($(mainResultCount).html());
$('#main-list').html($(mainList).html());
loadPage();
});
return false;
});
}
$(function() {
loadPage();
});
</script>
<form id="form">
<!-- some stuff -->
</form>
<div id="main-result-count">
<!-- some stuff that can change -->
</div>
<div id="main-list">
<!-- some stuff that can change -->
</div>
如您所见,我不是在提交表单时重新加载页面,而是捕获事件并使用 AJAX 发送它。返回的数据是一个完整的 HTML 页面,与用户看到的几乎完全相同。从该页面,我使用可能更改的数据更新当前布局。
我在页面上还有其他几个 JS 脚本,运行时间很长,还有很多布局数据,如图像、CSS、菜单等。在获得 AJAX 的响应时,所有这些数据和 DOM 也会被加载请求即使该内容未显示,还是仅在浏览器解析时才加载此类内容,然后保留一种大字符串?
我找不到我应该实施什么样的测试来自己找到答案:(