javascript - 如何检测当前程序运行js中页面的首次加载

标签 javascript jquery asp.net

我有一个 ASP.net MVC 项目。我想在 js 中创建一个函数,该函数仅在程序当前运行中第一次加载此页面时执行。换句话说,如果有人进入不同的页面并返回 - 我不希望这种情况再次发生。但如果我从头开始重新运行该项目,我希望它发生。

我做了我的研究 - 但我发现的一切 - Cookie 和本地存储的想法对我不起作用,因为它们只在用户页面的第一次加载上起作用 - 所以如果我们出去并从同一台计算机重新运行该项目,它不会工作......

有人有想法吗?

最佳答案

我不确定您是否明确定义了“第一次”“回来”和“当前运行”。这些在 Web 应用程序中并不是简单的概念,从逻辑 Angular 来看,它们永远不会启动或停止,也不存在任何访问顺序的概念,除非您专门编写了一种维护工作流状态的方法,这不一定是微不足道的。

如果您想要一个脚本只运行一次,无论从任何计算机访问该页面多少次,您可以设置 application variable运行后。在对该页面的后续请求中,检查应用程序变量,如果该变量存在,则省略 Javascript。请注意,如果应用程序因任何原因重置,例如,脚本将再次运行。应用程序池回收,这可能是自动的,具体取决于您的网络服务器设置。

如果您希望每个浏览器实例仅运行一次脚本,请在运行后设置一个 cookie。在对该页面的后续请求中,检查 cookie,如果存在,则跳过脚本的执行。请注意,如果用户有多个浏览器,他将能够多次运行该脚本,因为大多数浏览器不共享 cookie jar。

如果您希望每个浏览器 session 仅运行一次脚本(例如,如果您关闭并打开浏览器,则脚本应再次运行),请设置 session cookie运行后。在对该页面的后续请求中,检查 cookie,如果存在,则跳过脚本的执行。

如果您想要一个每个用户仅运行一次的脚本,您将需要一些识别当前用户的方法。所以这意味着您需要一个身份验证机制。在这种情况下,仅在用户刚刚通过身份验证时运行脚本 - 在用户数据库中设置一个标志,指示用户已经见证了脚本的执行,并在再次渲染脚本之前检查它。

关于javascript - 如何检测当前程序运行js中页面的首次加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578846/

相关文章:

javascript - 在 JavaScript 中添加数组

javascript - 用于书签的 Google Analytics

javascript - 数组存在于数组的数组中

javascript - 查找 class = 某个类的元素并删除类

asp.net - 为什么私有(private)事件处理程序在 ASP.NET 中不起作用

c# - 不能将类型字符串隐式转换为 char

javascript - 单击标签内的链接时如何防止复选框选中

javascript - 为什么我的 Vue 项目中的 promise.finally 不能在 Edge 中运行?

javascript - 如何获取其他Frame中的隐藏值?

跨子域的asp.net表单例份验证