我已经编码了一个PHP脚本,该脚本用于检查几个不同的服务器的状态,确定它们是否在线,然后输出其版本信息,并给出以更新服务器上数据库的选项。

我遇到的问题是,当脚本到达离线服务器时,它会在执行检查时悬挂很长时间。我认为这是一个很好的方法,可能是使用jQuery或Xajax之类的东西异步加载不同的服务器,以便一台服务器不会悬挂整个脚本。

我调用单个功能以开始所有检查,并回应服务器信息:

    outputServerInfo("addressOfServerHere", "nameofServerHere", array("Names", "of", "databases");

我的问题是:什么是对这些服务器异步加载这些服务器的最佳方法?如果我可以在执行支票时说出“加载...”代替,那将是理想的。我以前从未使用过jQuery或Xajax,所以我认为最好获得一些社区的输入。谢谢!

编辑:我现在已经工作并加载了所有服务器,但是我还有另一个问题。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">

document.write("<h1>Server Manager</h1><form method='post' name='form1'>");

function server_output(serverName) {
        document.write("<div id=" + serverName + "Loading>Loading " + serverName + "...</div>");
        $.ajax({
        url  : 'serverManager.php',
        async: true,
        type : 'POST',
        data : 'serverName=' + serverName,
        success : function(msg){
            document.write("<div id=" + serverName + "Loading>");
            document.write(msg);
            document.write("</div>");
        }
    });
}
server_output("serverName");
</script>
<input type='SUBMIT' value='GO' name='btnGo' onSubmit=document.form1.submit(); />
<input type='HIDDEN' name='ACTION' value='GO' />

当我加载页面时,我可以看到服务器管理器标题以及最后一个标签后的按钮,但是它们几乎立即消失。在此之后,服务器信息加载了,它们不会重新出现,因此我没有标题以及让我使用我的表单的按钮(我的PHP脚本创建了用于提交作业的复选框,用于更新服务器) 。有任何想法吗?

有帮助吗?

解决方案

好吧,对于jQuery来说,就像调用后端PHP脚本一样容易。

$.ajax({
    type : 'POST',
    url : 'your_script.php',
    async : true, //default anyway
    data : '', //server ip, or something to send to the script using type as the method
    success : function(msg){
        //do something here with returned data
        //Example: alert(msg) will show the output results from the backend script
    }
});

其他提示

您正在使用Ajax发布,但是您正在检查$ _GET-认为您可能想要$ _post。

您可以从客户端拨打所有电话 jQuery ajax函数. 。因此,您可以异步地调用所有呼叫。

JQuery和Ajax绝对是必经之路。 jQuery Ajax是异步的,因此您可以一次踢出很多工作。您将为您试图获取更新的每台服务器的AJAX作业。

默认情况下,您可以为每个服务器提供一个带有“加载”内容的DIV。一旦您从Ajax调用获得了成功的响应,您将将DIV的值更改为要显示的信息。即使是故障也会返回Ajax的结果,因此您可以捕获错误并显示不同的消息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top