1
1
<script type="text/javascript">
2
- function getT(){
3
- var D = new Date();
4
- var t = String(D.getTime());
5
- t = Number(t.substr(0, 10));
6
- return t;
7
- }
8
- function poll(t){
9
- $.ajax({
10
- type: "GET",
11
- url: <?php $ request_url = 'http:// ' .$ _SERVER ['HTTP_HOST ' ].$ _SERVER ['PHP_SELF ' ];
12
- echo '" ' .substr ($ request_url , 0 , stripos ($ request_url ,'index.php ' )).'reload.php" ' ;?> ,
13
- data: {time:t},
14
- async: true,
15
- timeout: 60*1000,//60秒后服务器没有返回就重新发起
16
- success: function(msg){
17
- (typeof msg !== 'object') ? jsonObj = JSON.parse(msg) : jsonObj = msg ;
2
+ var autoReload = function() {
3
+ var request = null;
4
+ var timeOut = 60*1000;//60s超时
5
+
6
+ function getT(){
7
+ var D = new Date();
8
+ var t = String(D.getTime());
9
+ t = Number(t.substr(0, 10));
10
+ return t;
11
+ }
12
+
13
+ function createRequest() {
14
+ if(window.XMLHttpRequest) {
15
+ request = new XMLHttpRequest();
16
+ } else if(window.ActiveXobject){
17
+ try {
18
+ request = new ActiveXObject("Microsoft.XMLHttp");
19
+ } catch(e) {
20
+ request = null;
21
+ }
22
+ }
23
+ if(request == null)
24
+ alert('你的浏览器不支持异步请求!');
25
+ }
26
+
27
+ function sendRequest() {
28
+ createRequest();
29
+ var url = <?php $ request_url = 'http:// ' .$ _SERVER ['HTTP_HOST ' ].$ _SERVER ['PHP_SELF ' ];
30
+ echo '" ' .substr ($ request_url , 0 , stripos ($ request_url ,'index.php ' )).'reload.php" ' ;?> ;
31
+ request.open('GET',url + '?time=' + getT(),true);
32
+ request.onreadystatechange = processRequest;
33
+ request.send(null);
34
+ setTimeout(abortRequest, timeOut);//超时重试
35
+ }
36
+
37
+ function processRequest() {
38
+ if(request.readyState == 4 && request.status == 200) {
39
+ //请求结果已经返回
40
+ var msg = request.responseText;
41
+ (typeof msg !== 'object') ? jsonObj = JSON.parse(msg) : jsonObj = msg;
18
42
if (1 === jsonObj.status){
19
- // alert("有新消息!"+msg.data);
20
43
console.log("文件已经改动,可以刷新页面!");
21
- poll(getT());
22
44
window.location.reload();//刷新页面
23
45
} else {
24
46
console.log("没有任何改动!再次建立查询...");
25
47
console.log("msg=" + jsonObj.status + ",intime = "+ jsonObj.intime+"s");
26
- poll(getT());
27
- }
28
- },
29
- error: function (XMLHttpRequest, textStatus, errorThrown){
30
- if("timeout" === textStatus){
31
- // alert("超时啦!");
32
- console.log("等待超时,重新连接中...");
33
- poll(getT());
48
+ sendRequest();
34
49
}
35
50
}
36
- }, "JSON");
51
+ }
52
+ function abortRequest() {
53
+ console.log('查询超时!重新开始查询...');
54
+ request.abort();
55
+ sendRequest();
56
+ }
57
+ this.start = function() {//开始执行
58
+ sendRequest();
59
+ }
37
60
}
38
- $(function(){
39
- poll(getT());
40
61
41
- });
42
- </script>
62
+ window.onload = (new autoReload()).start();
43
63
</script>
0 commit comments