微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ajax当前时间不起作用

如何解决使用ajax当前时间不起作用

| 我正在尝试在网页上实现动态的当前时间,显示小时,分钟和秒。我正在使用Ajax,但这似乎不起作用。 另外,我正在使用Symfony框架。 在身体上,我得到了
<body onload=\"showCurrentTime()\">
在那之前:
<script type=\"text/javascript\" src=\"/js/curr_time.js\"></script>
curr_time.js
//Once the document is loaded,execute the showCurrentTIme function
//This is the AJAX function that displays the current time on the screen.
$(document).ready(function(){ showCurrentTime(); });    

function showCurrentTime() {
    //Call the current time web service,//grab the time off the server,and apply it to the 
    //end-user client after waiting for the document to load

    $(document).ready(function() {

        //Make the call to the XML web service
        $.get(\"currentDateTime.PHP\",function(currentDateTime) {
            //Format the time returned by the server
            var time = [ $(\"hour\",currentDateTime).text(),\":\",$(\"min\",currentDateTime).text() ];

            //Determine how many milliseconds to will wait until 
            //the time needs to be refreshed again
            var refresh = [(60 - $(\"sec\",currentDateTime).text()) * 1000 ];

            //display the time on the end-user client
            $(\"#currentTime\").html(time.join(\'\'));

            //Set a timer so that the time on the end-user client updates 
            // in sync with the server time to display the true current time
            setTimeout(\'showCurrentTime()\',refresh);
        });
    });
}
在同一文件夹中,我有PHP文件currentDateTime.PHP
<?PHP
#Need to specify that this is an XML document in order for it to work with AJAX
header(\'Content-Type: text/xml\');

#Set variables equal to each part of the date and time
$year = date(\"Y\"); 
$mon = date(\"m\");
$mday = date(\"d\");
$hour = date(\"H\");
$min = date(\"i\");
$sec = date(\"s\");

#Create the XML document of the current date and time
echo \'<?xml version=\"1.0\" encoding=\"UTF-8\"?>\' . \"\\n\";
echo \'<currentDateTime>\' . \"\\n\";
echo \"\\t\" . \'<year>\' . $year . \'</year>\' . \"\\n\";
echo \"\\t\" . \'<month>\' . $mon . \'</month>\' . \"\\n\";
echo \"\\t\" . \'<day>\' . $mday . \'</day>\' . \"\\n\";
echo \"\\t\" . \'<hour>\' . $hour . \'</hour>\' . \"\\n\";
echo \"\\t\" . \'<min>\' . $min . \'</min>\' . \"\\n\";
echo \"\\t\" . \'<sec>\' . $sec . \'</sec>\' . \"\\n\";
echo \'</currentDateTime>\' . \"\\n\";
?>
在体内
<p id=\"currentTime\">--:--</p>
我很久以来一直在尝试查找错误,但是没有成功...     

解决方法

        发布的
showCurrentTime()
函数仅做一件事:设置
$(document).ready()
处理程序。您想从准备就绪的文档中调用它(您已经在这样做),而不是在函数中设置另一个处理程序。只需除去该函数内部多余的
$(document).ready()
内容,如下所示:
function showCurrentTime() {

   $(document).ready(function() {  // DELETE THIS LINE

       //Make the call to the XML web service
       $.get(\"currentDateTime.php\",function(currentDateTime) {
           // rest of your function goes here...
       });

   });  // DELETE THIS LINE
} 
我确定这是主要问题。 第二个问题是,当您创建
refresh
变量时,您正在将其分配为指向具有一个元素而不是数字的数组。卸下方括号。 另外,在您的JS文件中添加以下行:
$(document).ready(function(){ showCurrentTime(); });
并在HTML中加载正文:
<body onload=\"showCurrentTime()\">
是多余的。选择一个(最好是JS文件中的一个)。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。