有没有办法对PHP对象方法进行异步调用?使用jquery我可以将外部文件加载到div中,但是我无法访问下面的setTemp之类的方法。我想避免等待"等待"在启动第二次更新之前更新一个对象..
我的(失败)尝试看起来像这样,三个文件:
beachregister:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>OO Method test</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function() {
setInterval(function() {
$("#BaiadoSancho").load();
}, 60000);
});
$(document).ready(function() {
setInterval(function() {
$("#GraceBay").load();
}, 60000);
});
</script>
</head>
<body>
<?php
include 'Baiadosancho.php';
include 'Gracebay.php';
$baia = new Baiadosancho;
$baia->setTemp();
$grace = new Gracebay;
$grace->setTemp();
// .... lots of other beaches
?>
<div id = "BaiadoSancho">
<?php $baia->setTemp(); ?>
</div>
<div id = "GraceBay">
<?php $grace->setTemp() ?>
</div>
</body>
</html>
Baiadosancho.php
class Baiadosancho{
private $temp;
public function getTemp() {
return $this->temp;
}
public function setTemp() {
// $json = file_get_contents('urltogettemperature');
// $arrayDecodedFromJSON = json_decode($json, true);
// ...
// $this->temp = $arrayDecodedFromJSON['temp'];
}
}
Gracebay.php
class Gracebay {
private $temp;
public function getTemp() {
return $this->temp;
}
public function setTemp() {
// $json = file_get_contents('sampl/temperature');
// $arrayDecodedFromJSON = json_decode($json, true);
// ...
// $this->temp = $arrayDecodedFromJSON['temp'];
}
}
..我也考虑过下面的其他方法,你觉得它们有利吗?
GearMan,PHP中的并行cURL执行,EvPeriodic和iron.io
答案 0 :(得分:0)
我的问题的答案如下:
deceze写道: 如果你想要异步执行(在标准的PHP中),那么你将不得不求助于像Gearman或者可能的forks这样的东西。标准PHP是单线程的,没有事件。
虽然可以使用jquery,但是这里解释了如何从所请求的文件访问对象: Using objects in Ajax calls PHP files