javascript - javascript ajax 请求中的回调

标签 javascript jquery ajax callback

我有一个函数来处理 ajax 请求,并带有回调。

这段代码的作用是发送一个请求,并将响应写入我的 html 页面的 div 中。 但是我遇到了回调问题,并且我不确定该函数是否正常工作......

所以我的问题是关于 xmlhttp.onreadystatechange 中的两行代码,我已突出显示它们。

代码:

    function check_if_over(callback) {

        //first i collect some variables from the UI
        var val1 = $('#timer').text(),
            val2 = $('#work').val();

        var val5=val1.split(":",1);

        //I initialize the xmlhttp object
        xmlhttp=GetXmlHttpObject();

        if (xmlhttp==null)
        {
        alert ("Your browser does not support Ajax HTTP");
        return;
        }

        xmlhttp.onreadystatechange = function() {

                //*****my question is about this part inside the "if"

                if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {

                        document.getElementById('content0').innerHTML=xmlhttp.responseText;
                       callback.call(xmlhttp.responseText);

                }
        };
        xmlhttp.open('GET','Controller?action=check&timer='+val5+'&work='+val2);
        xmlhttp.send();
   }

所以我的问题是,如果 xmlhttp.onreadystatechange 像这样正常工作,执行以下任务:(a) 在我的 div 中编写适当的代码,以及 (b) 执行回调。 谢谢!

编辑:

因此,在那之后我做了这件事,我发现它以非预期的方式进行打印,因为它跳过了该代码第一次迭代中的第一次打印,并使其恰好在第二次迭代的时间像这样的迭代:

point 2

point 2

(small wait)

point 1

(我基本上每 1 分钟在 2 个状态之间交替,所以我用它来异步检查服务器端的某些内容。所以这就是检查发生的地方。)

        check_if_over(function() {
            alert("point 1");
            over = document.getElementById("value_ok").firstChild.nodeValue;
        }
        alert("point 2");

编辑2:

看来使用jquery它可以完美地工作,

point 2

(small wait)

point 1

point 2

(small wait)

etc..

最佳答案

如果您已经在使用 jQuery,为什么不使用 jQuery 的 $.get 函数呢?

function check_if_over(callback) {
    //first i collect some variables from the UI
    var val1 = $('#timer').text(),
        val2 = $('#work').val(),
        val5 = val1.split(":",1);

    $.get('Controller?action=check&timer='+val5+'&work='+val2, function(data) {
        $('#content0').html(data);
        callback.call(data);
    });
}

关于javascript - javascript ajax 请求中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19245843/

相关文章:

php - 优化数据库结构

javascript - 如何重新排列 HTML 标签的顺序?

javascript - 在 div 元素上调整大小

ajax - WordPress网站从前端访问wp-admin/ajax.php页面时显示403错误

ajax - Redis 成员与 Node

javascript - AngularJS $location 不适用于 google.maps.event 监听器

javascript - JS -Jquery - 从 Jquery 插件内部调用方法

javascript - 如何将默认的美国男性声音更改为英国女性或其他声音

javascript - 禁用网页上的滚动并仅允许在页面部分上滚动

Javascript 多维数组键值对