第二个ajax请求不适用于移动浏览器

时间:2015-02-06 07:43:10

标签: javascript ajax

我正在尝试用它自己的网络服务器建立一个气象站。到目前为止,页面的代码是这样的:

<!DOCTYPE html>
<html>
<head>
<title>WS-100 Server</title>
<script>
    function UpdatePage()
    {
        var request = new XMLHttpRequest();
        request.onreadystatechange = function()
        {
            if(this.readyState == 4) {
                if(this.status == 200) {
                    if(this.responseText != null) {
                        document.getElementById("currentTemp").innerHTML = this.responseText;
                    }
                }
            }
        }
        request.open("GET","ajax_update_temp",true);
        request.send(null);
        request= new XMLHttpRequest();
        request.onreadystatechange = function()
        {
            if(this.readyState == 4) {
                if(this.status == 200) {
                    if(this.responseText != null) {
                        document.getElementById("currentDatetime").innerHTML = this.responseText;
                    }
                }
            }
        }
        request.open("GET","ajax_update_time",true);
        request.send(null);
        setTimeout("UpdatePage()", 10000);
    }
</script>
</head>
<body onload="UpdatePage()">
<h1>WS-100 Weather Station</h1>
<div id="currentDatetime">
    <p> </p>
</div>
<div id="currentTemp">
    <p> </p>
</div>
</body>
</html>

它在桌面浏览器上运行良好,但在移动浏览器上只有日期时间显示,在我的旧三星Galaxy上,没有一个显示。我考虑将两个查询合并为一个,但最终我想做至少两个请求:一个用于当前时间和温度,另一个用于下载和处理历史测量的txt文件。

这只是浏览器的限制还是应该有办法解决?

2 个答案:

答案 0 :(得分:2)

尝试运行$('document').ready(function());,因为在移动网络浏览中,桌面浏览器的某些功能受到限制,无法保持其性能。所以有时你需要写$('document').ready(function());而不是onload()

答案 1 :(得分:0)

来自Prabhu的答案和我的:

<!DOCTYPE html>
<html>
<head>
<title>WS-100 Server</title>
<script>
    function UpdatePage()
    {
        var request = new XMLHttpRequest();
        request.onreadystatechange = function()
        {
            if(this.readyState == 4) {
                if(this.status == 200) {
                    if(this.responseText != null) {
                        document.getElementById("currentTemp").innerHTML = this.responseText;
                    }
                }
            }
        }
        request.open("GET","ajax_update_temp",true);
        request.send(null);
        var request2= new XMLHttpRequest();
        request2.onreadystatechange = function()
        {
            if(this.readyState == 4) {
                if(this.status == 200) {
                    if(this.responseText != null) {
                        document.getElementById("currentDatetime").innerHTML = this.responseText;
                    }
                }
            }
        }
        request2.open("GET","ajax_update_time",true);
        request2.send(null);
        setTimeout("UpdatePage()", 10000);
    }
    $('document').ready(function() {
        UpdatePage();
    });
</script>
</head>
<body>
<h1>WS-100 Weather Station</h1>
<div id="currentDatetime">
    <p> </p>
</div>
<div id="currentTemp">
    <p> </p>
</div>
</body>
</html>