【发布时间】:2018-03-13 14:11:03
【问题描述】:
我很懒,我编写了一个代码,它从数据库中获取数据,然后如果发生变化,每秒都会在索引上重新加载一个页面,因此无需刷新页面即可看到它。
什么方法更快?
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 文件每秒会发送很多查询,这对数据库健康吗?或者今天的互联网速度和托管服务还可以吗?
哪个更快?或者你们有什么更好的办法吗?
【问题讨论】:
-
这两段代码之间不会有任何有意义的性能差异。
-
这两个选项或多或少是相同的。第一个使用普通的 Javascript,第二个使用 jQuery。性能方面取决于您拥有的访问者数量。
-
@Pointy 好的,但是这样做可以吗?还是太过分了?
-
@Markus Müller 再次这样做是不是有点矫枉过正,还是你有更好的选择?
标签: javascript php jquery mysql live