我曾尝试阅读一些文章,但我对这些概念还不是很清楚.
有人愿意尝试向我解释这些技术是什么:
我每次遇到的一件事是,服务器保持连接打开并将数据推送到客户端.如何保持连接打开,客户端如何获取推送数据?(客户端如何使用数据,也许某些代码可能会有帮助?)
现在,我应该将其中哪一个用于实时应用.我一直听说很多关于websockets(有socket.io [一个node.js库]),但为什么不用PHP?
我有一个PHP脚本可能需要至少10秒才能运行.我想为用户显示它的进度.
在执行类中,我有一个属性$progress,它用进度(在1-100中)和一个方法get_progress()(其目的应该是显而易见的)更新.
问题是,如何更新<progress>前端的元素供用户查看?
我认为AJAX是解决方案,但我无法理解它.我无法访问同一个对象实例.
我读到了" HTTP持久连接 ",但不知怎的,我似乎并不明白在这种情况下持久性意味着什么.
你能详细说说吗?
所以,我被告知在nodeJS 中传递request和/或response变量是"不好的做法".但这意味着你的大部分代码都必须在server.js文件中,这使得它变得杂乱无章.
你如何模块化你的nodejs服务器,req/res适当地传递并能够将你的代码组织成单独的文件?
例如,我想我的分裂插座的路由,.get并.post为不同的文件,但仍然可以使用回调参数,如下所示:
app.io.route("disconnect", function(req,res) { <--- these params
db.query("UPDATE player_data SET online=0 WHERE id="+mysql.escape(req.session.user));
req.io.broadcast("event", {msg:req.session.username+" has logged out!"});
app.io.broadcast("reloadXY");
});
Run Code Online (Sandbox Code Playgroud)
截至目前,他们都在一个文件中,我不喜欢这样.
我有这个代码:
<?php
for($i = 0; $i<30; $i++)
{
echo "$i<br>";
usleep(100000);
}
?>
Run Code Online (Sandbox Code Playgroud)
我想知道如何让浏览器显示0,然后是1,然后是2,......
在我的示例中,它加载一段时间然后显示0-29.
在apcahe服务器中,我想运行一个PHP脚本作为cron,它在后台启动一个php文件,并在文件启动后退出,并且不等待脚本完成,因为该脚本需要大约60分钟才能完成.这可以做到吗?
php ×5
http ×2
persistent ×2
ajax ×1
comet ×1
connection ×1
cron ×1
express ×1
javascript ×1
long-polling ×1
modularity ×1
node.js ×1
progress-bar ×1
stdclass ×1
tcp ×1
websocket ×1