ASP.Net:跨浏览器操作
本文关键字:浏览器 操作 Net ASP | 更新日期: 2023-09-27 18:34:20
背景:我有一个 ASP.Net 的C#应用程序,用于对计算机科学考试进行评分。学生参加考试,而教师在他/她自己的浏览器中监控他们的进度。教师页面显示所有仍在参加考试的学生的表格,以及在其浏览器上检测到的 JavaScript 中可能出现的任何安全问题。违反安全规定和完成考试会导致在考试页面上发布帖子。目前,教师必须单击按钮才能查看更改。
其他详细信息:学生浏览器有自己的会话信息,独立于教师的会话信息。为了让服务器将新数据写入教师的浏览器,ASP.Net 需要使用教师的会话信息。我尝试存储教师页面中的所有标题和 cookie,然后让学生页面使用标题和 cookie 进行重定向。尽管来自学生页面的重定向使用存储状态加载教师页面,但教师页面不会在该页面的存储会话中运行,因此无法访问客户端浏览器。
底线:我希望一个浏览器上的事件导致另一个浏览器的页面刷新。这两个 ASP.Net 页面可以通过任何必要的方式在代码中进行协调。
我想我需要模拟来自讲师页面的刷新请求,包括会话信息并在服务器上进行重定向。然而,我的搜索未能产生良好的线索。有人尝试过这个吗?
注意:其他可能想尝试的人可以免费使用此系统。评分突出语言语法,可以运行 HTML 和 Java 程序。
如果你想要双排反馈(从你的问题来看,这就是你所追求的(,看看SignalR。这将允许您根据其他客户端向客户端发送更新(想想Facebook通知(。基本上:
- 创建一个将处理您的订阅的 HUB(教师订阅更新(。
- 学生开始测试,因为当事件发生时,他们还会通知HUB更改。
- 然后,HUB 将该消息中继回教师。
另一种方法是使用某种服务器端标志并使用教师页面上的setInterval
/AJAX
来检查是否有新的更新。但是,SignalR 会为你完成所有这些操作(并在必要时自动执行兼容性回退(。
研究SignalR。
另一种更粗糙的技术是让一个网页通过向页面添加刷新元标记来自动刷新,如下所示(其中 5 以秒为单位(:
<meta http-equiv="refresh" content="5">