我有这个连接到newsletter-signup.html
文件的AJAX请求,然后在返回的data
变量中搜索字符串“form-success”。 此字符串通过{Django}模板在if
语句中应用,以标记表单已成功。
以下是搜索整个数据的代码段:
if (data.indexOf('form-success') > 0) {
有更快的方法来搜索这些数据吗?或者也许更好的方法来确定返回的数据是否成功注册?
提前感谢您的帮助。这是完整的代码:
$.ajax({ url: '/newsletter-signup', type: 'GET', data: {email: emailVal}, async: false,
success: function(data){
// Returning 'form-success' in our data string indicates the sign up worked
if (data.indexOf('form-success') > 0) {
// open the success message in a modal window
happyModal.open({ content: thankYouContent });
} else {
// if not successful re-load the contents, firing our standard error message
theBtn.removeClass('disabled');
$('.login-panel').load('/newsletter-signup','email=' + encodeURIComponent(emailVal), function () {
});
}
}
});
答案 0 :(得分:1)
我非常怀疑你在data.indexOf
电话中看到任何可察觉的延迟。您感知的延迟可能是ajax调用本身,只需要在您的网络上进行。您无法在代码中执行任何操作来加快速度。
您也在使用async: false
进行通话,这意味着在大多数情况下,您在通话过程中锁定浏览器,这不会带来愉快的用户体验,并且可能会强调延迟。我强烈建议允许请求与某种“一刻”显示异步,允许用户在等待时使用其他标签等。
(旁注:请注意,async: false
将在jQuery 2.0中消失。)