AJAX and setTimeout on Internet Explorer

AJAX and setTimeout on Internet Explorer

本文关键字:Internet Explorer on setTimeout and AJAX      更新时间:2023-09-26

我正在尝试使用ajax获取服务器日期时间。我在Internet Explorer上运行脚本时遇到问题。


我以前的密码是这样的。(但它只显示客户端的电脑日期时间,客户端可以随时更改)

var _current = new Date();
var _day = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][_current.getDay()];
var _month = ["January","February","March","April","May","June","July","August","September","October","November","December"][_current.getMonth()]
var _date = _current.getDate(); if(_date < 10){_date = "0" + _date;}
var _year = _current.getFullYear();
var _hours = _current.getHours(); if(_hours > 12){_hours = _hours - 12; var ampm = "PM"}else{var ampm = "AM"}if(_hours < 10){_hours = "0" + _hours;}
var _minutes = _current.getMinutes(); if(_minutes < 10){_minutes = "0" + _minutes;}
var _seconds = _current.getSeconds(); if(_seconds < 10){_seconds = "0" + _seconds;}
$("#datetime").html("");
$("#datetime").html(_day + ", " + _month + " " + _date + ", " + _year + ", " + _hours + ":" + _minutes + ":" + _seconds + " " + ampm + "");

输出:2015年12月2日星期三上午11:47(GMT+8)

所以,我切换到AJAX并制作了一个PHP页面。

function getDateTime(){
    $.ajax({
        url: 'datetime.php',
        success:function(content){
            $("#datetime").html("");
            $("#datetime").append(content);
        }
    });
    window.setTimeout(getDateTime,1000);
}

php

<?php
// Set Timezone
date_default_timezone_set('Asia/Taipei');
// Display DateTime
echo date("l, F d, Y, h:i:s A",strtotime('Now'))."(GMT".date("O",strtotime('Now')).")";
?>

输出:2015年12月2日星期三上午11:47(GMT+0800)

对我来说,这看起来像是ajax调用的缓存问题,因为请求URL一直都是相同的。你可以试试

$.ajaxSetup({
    cache: false
});

这将添加一些随机请求查询字符串,并将打破任何缓存问题(如果有的话)。也许值得一试。