如何在活动结束后刷新页面?

时间:2016-09-19 01:06:37

标签: javascript jquery

我找到了this similar question,但我认为它不能解决我的问题。对于我的场景,我的项目中有updating / saving个数据。

SCENARIO

Filer希望在(PC1)

中更新他/她的记录

然后(PC2)已经打开了待处理请求列表的页面。

我想要的是来自(PC1)的每个请求后,(PC2)中的页面会在当前打开时自动刷新 - 用户无需手动重新加载(例如,按F5 })。

2 个答案:

答案 0 :(得分:1)

您可以通过以下不同的方法实现这一目标:

  • 长轮询:长轮询是一种事件驱动,通知在发生更改时服务器响应的位置(保留请求直到数据可用)
  • 短轮询 - 定期(例如,每30秒)使用ajax请求命中服务器以获取新数据

上述两种技术都是旧的,现在不推荐使用,因为您在现代浏览器中拥有HTML5 WebSockets和WebRTC等最新功能。您需要的是在发生变化时从服务器端推送。

如果您使用的是dotnet后端或者它的节点后端,那么我会建议您查看SignalR(http://www.asp.net/signalr),然后是signalr(npmjs.com/package/signalrjs)的节点实现。

  

ASP.NET SignalR是ASP.NET开发人员的新库   轻松开发实时Web功能。 SignalR允许   服务器和客户端之间的双向通信。服务器可以   现在,当内容成为连接客户端时,立即将内   可用。 SignalR支持Web套接字,并且可以回退到其他网络套接字   旧版浏览器的兼容技术。 SignalR包含用于的API   连接管理(例如,连接和断开事件),   分组连接和授权。

更新 - 刚刚在SO中看到了一个非常详细的解释,可以为您提供更多见解(可能是问题不同,但给出的答案可以帮助您) - {{3} }

答案 1 :(得分:0)

请参阅How to refresh another page using javascript without opening the same page in a new tab

基本上你需要做的是:

//somewhere in your code you open a new tab
//maintain a reference to the window
var childWindow = window.open(initialURL);

//anywhere in your code, when you need to change the url of the window
//if you want to refresh that page, simply use newURL = initialURL
child.location.href = newURL;