我有一个网络服务器(www.domain.com)正在ping子网Web服务器(test.domain.com)以获取显示的信息,直到它发生变化。我希望它每3秒运行一次这个检查,直到状态变为等待消息之外的东西,然后我想在div中显示该信息。
我知道如果我想加载页面然后将其作为脚本运行,我将需要AJAX以某种方式运行它,但我已修改了我的2个AJAX脚本生活,并不知道该去哪里。
以下代码是我的测试基础PHP,适用于基本工作流程,但它完全在服务器端。
$str = file_get_contents($url);
$spanCount = preg_match_all("/\<span id\=\"spanId\"\>(.*?)\<\/span\>/",$str,$span);
$spanString = implode($span[0]);
echo "<div class='status' style='display:inline;'>";
while($spanString == "<span id=\"spanId\">Waiting for stuffs...</span>"){
echo "Waiting...";
$str = file_get_contents($url);
$spanCount = preg_match_all("/\<span id\=\"spanId\"\>(.*?)\<\/span\>/",$str,$span);
$spanString = implode($span[0]);
sleep(3);
}
if($spanString != "<span id=\"spanId\">Waiting for stuffs...</span>"){
echo "<pre>";
echo $spanString;
echo "</pre>";
}
echo "</div>";
答案 0 :(得分:3)
AJAX调用是否需要使用网页的整个HTML?如果它是您控制的服务,允许AJAX对您的PHP脚本进行GET并让它返回JSON数据对象会使事情变得非常简单。
get to status.php returns -> {status:"waiting", content: null} //do nothing
get to status.php returns -> {status:"waiting", content: null} //do nothing
get to status.php returns -> {status:"someawesomestate", content: "<blink><marquee>You're our 1,000,000th visitor!</marquee></blink>"} // grab content and update page
如果您遇到问题,使用JSONP可以非常轻松地抓取数据跨域。 (jQuery支持的例子)
$.getJSON('the/path/status.php').
.done(function(json) {
if(json.status != "waiting") {
$('.some-container').html(json.content);
}
})
.fail(function( jqxhr, textStatus, error ) {
alert('something exploded.');
});