我希望在我的屏幕/页面/视图中显示进度,就像在控制台中一样。所以当我点击安装按钮时,我的" textarea"控件应该开始显示像
这样的进度连接数据库 连接成功 运行脚本a.sql 运行脚本b.sql 操作完成 连接关闭
答案 0 :(得分:2)
为了能够轻松地执行此操作,您可以使用SignalR,根据将选择最佳通信协议(WebSocket,LongPolling)的浏览器版本,简化所使用的底层技术的所有麻烦。 .etc)。
在SignalR后面,其中一个基础使用的技术是websockets,除了在服务器和客户端之间保持开放的全双工通道之外,它不会发送任何内容,以防服务器中的任何更新它将推送此更新到客户端。最受欢迎的网站使用websockets来保持服务器和客户端之间的开放渠道。
SignalR实际上使用了websockets但是它会降级为使用长轮询,例如旧浏览器不支持websocket的连接升级。
您可以选择直接使用websockets,以防您的客户使用新的浏览器。
最后一件事Stackoverflow作为一个庞大而重载的网站,一旦有新的答案或评论,就会使用websockets进行更新。
答案 1 :(得分:1)
这样做的一般方法是每隔一秒发送一次ajax请求,并要求服务器进行更新。
void linkedList::addNode2(node* nextloc, const string &e)
{
...
nextloc = head -> next;
v->next = nextloc;
...
}
它可能看起来像上面那样。请注意,它每秒都会执行一次请求,并将来自服务器的消息存储在<div>
<pre id="status">
</pre>
</div>
setInterval(function () {
$.ajax("/getUpdate?someParam=1234").then(function (result) {
// result is whatever JSON object you send from the server
$("#status").innerText = result.someProp;
});
}, 1000);
元素中。