javascript - SammyJS,判断是否是第一个请求

标签 javascript sammy.js

我想确定 sammyJS 路由是否是第一次执行(如浏览器刷新)或者是否在页面初始加载后访问该路由。

我的用例是,在某些情况下,当执行路由时,新内容不可见,因为用户已向下滚动页面。我想在用户已经加载页面然后单击触发路由的链接时执行 $.scrollTo ,但是如果用户直接在地址栏中访问路由,则不会执行scrollTo 。

最佳答案

如果我明白你的想法,你只需要一个最初设置为 false 的标志,然后在路由回调中切换为 true 。然后,如果标志为 false,则调用滚动方法。标志范围必须大于 Sammy 应用程序对象范围,即您应该在调用 Sammy 初始化函数之前定义标志。每次浏览器重新加载页面时,该标志都会再次为 false(请记住,JavaScript 引擎会在每次 HTML 页面刷新/重新加载时重新启动)。

如果您需要将此逻辑应用于任何路线,您可以使用 beforeafteraround 事件之一。查看the Sammy API docs了解详情。

关于javascript - SammyJS,判断是否是第一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14126033/

相关文章:

javascript - Mobile Safari : why is window. scrollTo(0, 0) 不滚动到 (0, 0)?

asp.net-mvc - 如何使用 ASP.NET MVC 和表单例份验证创建单页应用程序 (SPA)?

routing - 萨米路由不起作用

Javascript 剖析之谜——闭包变量

javascript - 自定义模块: Uncaught TypeError: undefined is not a function

php - 这个javascript和php代码有什么问题

knockout.js - 了解 VS2013 MVC 5 SPA 模板

javascript - JavaScript 中的 'window' 对象是什么?它的属性是什么?

javascript - 有 ID 的 mapStateToProps?