0

我有这个连接到newsletter-signup.html文件的 AJAX 请求,然后在返回的data变量中搜索字符串“form-success”。此字符串通过if语句中的 (Django) 模板应用,以标记表单成功。

这是搜索整个数据的片段:

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 () {
                });
            }
        }
    });
4

1 回答 1

1

我非常怀疑您在data.indexOf通话期间是否看到任何明显的延迟。您感觉到的延迟可能是 ajax 调用本身,它需要的时间与您的网络占用的时间一样长。您无法在代码中做任何事情来加快速度。

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

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

于 2012-11-06T11:33:22.813 回答