ajax callback 在什么时候运行

html代码

<!DOCTYPE html>
<html>
<head>
<title>Ajax Thread</title>
<meta charset="utf-8"/>
</head>
<body>
  <div>Comet return:</div>
  start:<div id="start">&nbsp;</div>
  get:<div id="get">&nbsp;</div>
  sended:<div id="sended">&nbsp;</div>
  pause:<div id="pause">&nbsp;</div>
  callback:<div id="callback">&nbsp;</div>
  pause2:<div id="pause2">&nbsp;</div>
<script type="text/javascript">
if (!window.console) {
    var console = {
        log: function() {}
    };
}

var xmlhttp;

function loadXMLDoc(url, callback) {
    xmlhttp = null;
    if (window.XMLHttpRequest) { // code for IE7, Firefox, Opera, etc.
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp != null) {
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4) { // 4 = "loaded"
                if (xmlhttp.status == 200) { // 200 = "OK"
                    //dom(‘A1‘).innerHTML = xmlhttp.status;
                    //dom(‘A2‘).innerHTML = xmlhttp.statusText;
                    //dom(‘A3‘).innerHTML = xmlhttp.responseText;
                    callback(xmlhttp.responseText);
                } else {
                    //alert("Problem retrieving XML data:" + xmlhttp.statusText);
                }
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);
    } else {
        //alert("Your browser does not support XMLHTTP.");
    }
}

function pause(numberMillis, id) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    var count = 0;
    var lastTime = parseInt(now.getTime() / 1000);
    while (true) {
        now = new Date();
        if (lastTime == parseInt(now.getTime() / 1000)) {
            count++;
        } else {
            dom(id).innerHTML = dom(id).innerHTML + lastTime + ‘   ‘ + count + ‘<br>‘;
            console.log(id, lastTime, count);
            lastTime = parseInt(now.getTime() / 1000);
            count = 0;
        }
        if (now.getTime() > exitTime) {
            return;
        }
    }
}

function dom(id) {
    return document.getElementById(id);
}

(function() {
    dom("start").innerHTML = parseInt(new Date().getTime() / 1000);
    console.log(‘start‘, parseInt(new Date().getTime() / 1000));
    loadXMLDoc("/get.php?" + Math.random(), function(data) {
        console.log(‘callback‘, parseInt(new Date().getTime() / 1000));
        dom("callback").innerHTML = dom("callback").innerHTML + ‘--我在前面是ajax是同步执行--‘;
        dom("callback").innerHTML = dom("callback").innerHTML + parseInt(new Date().getTime() / 1000);
        dom("get").innerHTML = data + ‘<br>‘;
        pause(2000, ‘pause2‘);
    });
    dom("sended").innerHTML = parseInt(new Date().getTime() / 1000);
    dom("callback").innerHTML = dom("callback").innerHTML + ‘--我在前面是ajax是异步执行--‘;
    console.log(‘sended‘, parseInt(new Date().getTime() / 1000));
    pause(6000, ‘pause‘);
})();
</script>
</body>
</html>

php代码

<?php
$s = time();
sleep(4);
echo "i am coming!     ";
echo "get:".$s."    send:".time();
?>

输出结果

时间: 2024-10-25 05:36:02

ajax callback 在什么时候运行的相关文章

jquery pass parameter to ajax callback

$('.del').on('click', function () { var id = $(this).attr('id'); var url = '/m/g2_content_del/' + id; var that = this; $.post(url, function (a, b, c, d) { var getItem = function () { return function () { return that; }; } var current = getItem()(); v

javascript的ajax

AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javascript对象: 请大家记住一句话:json字符串就是js对象的一种表现形式(字符串的形式) 既然我们已经学过python的json模块,我们就用它来测试下json字符串和json对象到底是什么 import json i=10 s='hello' t=(1,4,6) l=[3,5,7] d={'n

jquery中ajax的相关事件汇总

Jquery ajax事件分类 (一) 局部事件 local events 局部事件:在单个Ajax请求对象中绑定的事件,每一个 Ajax 请求对象可以根据需要绑定自己的局部事件 .局部事件只会被那个绑定该事件的 Ajax 对象触发,是属于单个 Ajax 对象的私有(即局部)事件.此类事件包括:beforeSend.complete.success.error. $.ajax({ beforeSend: function(){ // Handle the beforeSend event },

Hybrid App开发之Ajax在JQuery中的应用

前言: 今天学习一下如何通过Ajax与服务器进行交互,并且学习一下如何在JQuery中使用. 首先先了解一下什么是ajax? AJAX即"Asynchronous,Javascript+XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.AJAX=异步JavaScript和XML(标准通用标记语言的子集).AJAX是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情

【JavaScript】--ajax

1 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML). AJAX还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新.这一特点给用户的感受是在不知不觉中完成请求和响应过程. 与服务器异步交互: 浏览器页面局部刷新: <!DOCTYPE html> <html lang

Code笔记 之:ajax诡异的错误-请求status为200

诡异jquery ajax satus为200却出现错误 今天遇到的问题,不知道如何解决了.出现这样的情况,不是因为jquery的ajax写法失败,也不是请求失败,那是什么呢? 1.jquery的ajax请求的主要参数 beforeSend:发送ajax请求之前 success:发送ajax请求成功 error:发送ajax请求错误,通常是网络失去连接.服务器出错.后台方法错误等造成的 2.目前的现象 自身代码是这样子的 ……    $.ajax({        url: path+"/**&

AJAX(六)jsonp原理详解

一.什么是jsonp? 先别管什么叫jsonp,我们先来看一个小问题,看完这个问题你就知道jsonp是要解决什么问题的,自然也就明白什么是jsonp了. 问题: 之前做的例子如果在同一个域名下运行时是非常正常的,但如果这个数据接口是在A域名下,而使用了AJAX请求的静态页运行在B域名下,我们就会发现点击按钮发出请求时会报错.截个图来看看. 我们看到后台的一般处理程序运行的域名是 : http://localhost:64113 现在使用VS重新创建1个web项目,然后在这个使用AJAX方式发出请

ajax 随笔 - 1 文章 - 141 评论 - 143 JavaScript 的简单学习2

https://www.cnblogs.com/yuanchenqi/articles/5997456.html AJAX 一 AJAX预备知识:json进阶 1.1 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javascript对象: 请大家记住一句话:json字符串就是js对象的一种表现形式(字符串的形式) 既然我们已经学过python的json模块,我们就用它来测试下json字符串和json对象到

JQ模块一:Ajax

ajax 请求 $.ajax(url,[settings]) $.get(url,[data],[fn],[type]) $.getJSON(url,[data],[fn]) $.getScript(url,[callback]) $.post(url,[data],[fn],[type]) ajax 事件 ajaxComplete(callback)   规定当请求完成时运行的函数.回调时可使用的参数: event - 包含 event 对象 xhr - 包含 XMLHttpRequest 对