什么替代最适合间隔页面重新加载?

时间:2018-03-13 14:11:03

标签: javascript php jquery mysql live

我很懒,我已经制作了一个代码,它从数据库中获取数据,然后如果某些内容发生变化,每秒都会在索引上重新加载一个页面,这样它就可以看到而无需刷新页。

更快的替代方案是什么?

        function getLowPlayers() { 
        var httpd; 
        if (window.XMLHttpRequest) { 
            httpd = new XMLHttpRequest(); 
        } else if (window.ActiveXObject) { 
            httpd = new ActiveXObject("Microsoft.XMLHTTP"); 
        } 

        httpd.onreadystatechange=function() 
        { 
            if (httpd.readyState==4 && httpd.status==200) 
            { 
                document.getElementById("lowplayers").innerHTML= httpd.responseText;  
                setTimeout(getLowPlayers, 1000);  
            } 
        }   

        httpd.open("GET", "includes/ajax.php?noCache=" + Math.random(), true); 
        httpd.send(); 
    } 

或者这个:

function ajaxCall() {
    $.ajax({
        url: "ajax.php", 
        success: (function (result) {
             var res = $.parseJSON(result);
             var str1 = "<center><img src='https://steamcommunity-a.akamaihd.net/economy/image/";
            var str3 = " ' height='60' width='70'/></br>";
            var mes = [];
            var div = [];   
        })
    })
};

我知道这样做是一个愚蠢的解决方案,我可以设置一个socket.io服务器,但我认为它的工作量太大了。

据我所知,对于很多访问者来说,ajax.php文件会每秒发送多个查询,这对数据库来说是否健康?或者今天的网速和托管服务还好吗?

哪一个更快?或者你们有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

这两个代码或多或少相同,第一个用javascript vainlla编写,第二个用JQuery编写,因此更短更简单。

如果我必须决定,我会选择第二个代码,因为它更容易阅读和维护。

关于这两个代码之间的性能实际上是相同的,尽管如果有很多连接,使用ajax的选项将不会非常正确,因为每个服务器请求占用“X”内存,如果我们谈论大数字将意味着由于等待队列,页面将加载缓慢。

所以你说的最好的想法是确认socket.io并尝试通过从服务器到客户的调用来更新页面。