问题标签 [browser-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1254 浏览

javascript - JavaScript .hashchange 性能。它会带来任何放缓吗?

jQuery hashchange 事件

对我来说,它现在看起来是最成熟的解决方案(如果我错了,请纠正我)。我真的很喜欢这个用于处理浏览器哈希的插件。在某些情况下,它大大简化了 js 代码。

我真的很想开始广泛使用它,但我有一个问题要问你。

根据源它使用循环并检查哈希锚是否每 50 毫秒更改一次。

性能呢?我可以过度使用 hashchange 吗?它会导致性能显着下降吗?如果是在哪些情况下?

0 投票
3 回答
2873 浏览

javascript - 在不更改 url 的情况下注入新的历史记录条目。就像谷歌地图一样

我正在尝试找到不破坏javascript应用程序中的后退按钮的最佳方法。

在我的研究中,我试图了解最先进的技术。所以我转向谷歌地图看看它是如何工作的。

它确实具有后退/前进功能,但在生成新的历史条目时不会更改 url。尝试访问http://maps.google.com/,输入 NY 并按 Enter。现在使用后退按钮。没有网址更改。

他们怎么做到的?我试图弄清楚,但我很难翻阅有关 javascript 历史和 IE6 提示的过时文档。

0 投票
4 回答
1176 浏览

ajax - 更改 URL 上的查询字符串和更新浏览器历史记录有哪些选择?

有什么方法可以更改 URL 或向“后退按钮”添加更多历史记录,而无需刷新整个页面?

我的应用程序是基于 AJAX 的,我想在历史记录中添加一些“撤消”事件,以便用户可以简单地回击并保留旧值。

今天有什么可能?我听说其中一些可能在 HTML5 中,但尚未检查当前浏览器支持的内容。

0 投票
1 回答
5222 浏览

javascript - 如何添加浏览器历史状态?

所以我看到很多人推荐jQuery 历史插件iFrame的 hidden- hack,但我真正需要的是这项技术的另一半:

这两个都很好用。现在,我想附上这两行

到一个事件,但似乎没有一个会被后退按钮一致触发。有没有办法添加浏览器历史状态以保存当前 URL,以便上述技术有效?

0 投票
3 回答
888 浏览

javascript - facebook 如何控制 #! 在网址中

我怎么能控制#!在 url 中假设我有以下 url

http://www.facebook.com/#!/video/video.php?v=1106030301789

现在 facebook 如何#!在 url 中控制它....

0 投票
1 回答
453 浏览

browser-state - 如何确定何时按下访问键

如何确定何时按下访问键 - 使用 javascript(IE、Chrome、Opera、Safari)。在 FF 中,我使用了 document.onkeypress 事件,但在 Chrome 中,按下 ALT 键时不会触发此事件。

提前致谢 :)。

0 投票
2 回答
4024 浏览

php - 强制浏览器在更新后重新加载 css

当我更新服务器上的 css 文件时,许多客户端浏览器会在相当长的一段时间内继续使用旧的缓存 css 文件加载页面。

在搜索了许多帖子并将不同的想法放在一起之后,我想出了似乎是最简单和最便宜的方法。

在链接任何 css 文件的地方,附加href文件最后修改日期的时间戳,如下所示:

我正在使用 CakePHP,所以我在布局文件中所做的是:

所以css文件的链接末尾有一个额外的标签,但只要文件没有被修改,它就保持不变。这意味着浏览器将能够像往常一样缓存它。然而,一旦文件被修改,链接就会改变,浏览器不会错过任何一个节拍。

仍然使用这种方法,人们会因为将某些东西用于不打算使用的东西而感到有点肮脏。正在发送的“消息”没有任何用处,因为消息的内容很重要,除了识别它的存在。

以下是我的问题:

  1. 是否可以承认客户端存在从浏览器缓存中看到带有过期样式表(或 JavaScript)的修订 HTML 的风险?
  2. 这是黑客还是合法的解决方案?
  3. 有更好的解决方案吗?
0 投票
1 回答
193 浏览

javascript - 在不更改哈希或 URL 的任何其他部分的情况下将历史条目添加到浏览器

是否有技巧(可能使用 iframe...)在不更改哈希或 URL 的任何其他部分的情况下向浏览器添加历史记录条目,同时与旧版浏览器兼容(不早于 ie8 - 没有 pushstate)?

我知道这听起来很奇怪,但这是这个问题背后的逻辑:

我正在做一个单页应用程序,我想摆脱模式作为弹出窗口。我使用相同的技术,但不是在实际页面上方放置一个 div,我想隐藏整个页面并仅显示代表模式的 div。

这很好用,但是现在模态框占据了整个页面,用户倾向于(这是完全正常的)单击后退按钮以取消操作并返回上一页(在显示模态框时隐藏)。

我知道我可以导航到不同的页面(通过更改哈希),但我不希望 URL 更改,因为目标不是它自己的页面,而只是一个模式(复制 URL 没有意义模态并将其传递给其他人或为模态添加书签 - 就像弹出窗口中的任何普通模态一样)。

在用户完成操作(在模式中)或单击取消按钮的情况下,我还需要能够删除此条目。

0 投票
1 回答
1259 浏览

javascript - 当推送的 URL 与当前 URL 相同时,Pushstate 不会触发

我已经为我正在处理的站点构建了一个原始路由功能。
这个想法是检查传入的 URL,然后将浏览器发送到站点的适当部分。

我注意到,如果传入的 URL 与它应该推送到的 URL 相同,则 pushState 不会触发。意思是,如果我去,domain.com/journal它不会开火。该 URL 与路由器应该推送到的 URL 相同:) History.pushState({ id: 'journal' }, site.title+' — '+'Journal', site.url+'/journal' );

但如果我domain.com/journal/改为,它会火。这是为什么?


简化的路由代码

0 投票
0 回答
33 浏览

web-crawler - BrowserState 历史记录和搜索中的精简页面

我正在寻找一些关于实现 BrowserState 历史的最佳方式的意见。

目前的情况,我的电子商务网站目前是在 url 中使用哈希驱动的。每当用户更改结果时,页面都会向 url 添加一些哈希值并重新加载结果。例如:

如果用户共享此链接,正确的结果将显示为显示的结果。然而,目前我的规范标签会将搜索引擎指向 /products/,因此会错过从页面抓取的大量产品。

我看到有两个选项可以正确抓取这些内容:

  1. 使用 Ajax 抓取 - https://developers.google.com/webmasters/ajax-crawling/docs/getting-started

(例如 /products/!#button=1&sort=4&cat=2&page=2)

优点: - 产品网址会被抓取。缺点: - 页面标题、元描述和内容会重复。这会导致重复内容被抓取的瘦页面出现问题吗?

  1. BrowserState 历史 - https://github.com/browserstate/history.js/

我考虑使用的选项是历史,因为它支持所有浏览器版本。(例如 /products/button_1/sort_4/cat_2/page_2/)

优点:产品被爬取,可以为每个页面创建独特的内容,清晰的url结构缺点:页面薄?

对上述想法的任何反馈将不胜感激。

提前谢谢了