我很懒,我已经制作了一个代码,它从数据库中获取数据,然后如果某些内容发生变化,每秒都会在索引上重新加载一个页面,这样它就可以看到而无需刷新页。
更快的替代方案是什么?
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文件会每秒发送多个查询,这对数据库来说是否健康?或者今天的网速和托管服务还好吗?
哪一个更快?或者你们有更好的解决方案吗?
答案 0 :(得分:0)
这两个代码或多或少相同,第一个用javascript vainlla编写,第二个用JQuery编写,因此更短更简单。
如果我必须决定,我会选择第二个代码,因为它更容易阅读和维护。
关于这两个代码之间的性能实际上是相同的,尽管如果有很多连接,使用ajax的选项将不会非常正确,因为每个服务器请求占用“X”内存,如果我们谈论大数字将意味着由于等待队列,页面将加载缓慢。
所以你说的最好的想法是确认socket.io并尝试通过从服务器到客户的调用来更新页面。