第二个ajax请求在移动浏览器上不起作用

second ajax request not working on mobile browsers

本文关键字:浏览器 不起作用 移动 ajax 请求 第二个      更新时间:2023-09-26

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

<!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文件。

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

尝试运行$('document').ready(function());,因为在移动Web视图中,桌面浏览器的某些功能为了保持其性能而受到限制。因此,有时您需要编写$('document').ready(function());而不是onload()

来自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>