我在服务器上运行了幻灯片(jQuery Cycle2插件)。幻灯片可以通过在幻灯片上调用jQuery函数的按钮暂停和停止。
应用程序的结构如下:在index.php中我定义了幻灯片功能(停止,暂停等)和一个函数中的AJAX调用,该函数将POST发送到另一个PHP脚本以从中加载幻灯片内容服务器。到目前为止,这很好用。
现在,我想要另一个脚本(或者可能是Webservice)remoteControl.php,它允许我从第三个设备远程控制我的幻灯片。所以说我在服务器和另一个站点(可能是同一个域)上运行幻灯片放映我也使用AJAX调用index.php中的幻灯片放映功能。 目前这不起作用。 在我的index.php的正文部分,我把:
if(isset($_POST['action'])){
$actionOnSlideshow = $_POST['action'];
echo '<script>'.$actionOnSlideshow.'();</script>';
}
?>
后面是幻灯片显示的所有其他内容和脚本。
$actionOnSlideshow
变量包含从remoteControl.php中的AJAX请求发送的相应函数。
这可能与同源政策有关。然而,第二个AJAX调用来自同一个域,所以这不应该是问题!?
答案 0 :(得分:1)
我假设您不想使用类似的东西重建您的应用 服务器上的meteor js,它将更新推送到客户端。 你必须重建你的php页面,所以我只是提到它 供参考。
Websockets很有希望,但还不够稳定 跨平台生产。
如果您正在运行nginx并且可以重新编译,则可以将NGiNX_HTTP_Push_Module与AJAX Long Polling结合使用。
最后,如果所有其他方法都失败了,使用优质旧setTimeout and setInterval的AJAX就可以了。