Javascript / jQuery:如何让这个AJAX请求运行得更快?

时间:2012-11-06 11:28:25

标签: javascript jquery ajax

我有这个连接到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 () {
                });
            }
        }
    });

1 个答案:

答案 0 :(得分:1)

我非常怀疑你在data.indexOf电话中看到任何可察觉的延迟。您感知的延迟可能是ajax调用本身,只需要在您的网络上进行。您无法在代码中执行任何操作来加快速度。

您也在使用async: false进行通话,这意味着在大多数情况下,您在通话过程中锁定浏览器,这不会带来愉快的用户体验,并且可能会强调延迟。我强烈建议允许请求与某种“一刻”显示异步,允许用户在等待时使用其他标签等。

(旁注:请注意,async: false将在jQuery 2.0中消失。)