Hashtags(片断标识符)VS Javascript History API
Hashtags (Fragment identifiers) VS Javascript History API
哪一个更好?正在使用片段标识符。。。
http://www.alinkthatdoesnotwork.com/#!/dir1/dir2/file.html
还是新的Javascript历史API?
https://github.com/examplethatdoesnotwork/project/src/script.js
还是两者都用?(通过后备)
方面:
- 兼容性/支持
- 速度
- 便利性
哈希标签是对Twitter上的内容进行分类的一种方法,你指的是片段标识符。
使用片段标识符来指示通过Ajax加载什么内容是一个糟糕的想法。它们是一种脆弱的、对搜索引擎不友好的黑客攻击(除了双方都有更多的黑客攻击),并且依赖于JavaScript。
历史上的API是一个强大的系统,它实际上是为完成这项工作而设计的。它唯一的问题是浏览器支持,但(与片段标识符方法不同)它会优雅地降级为将直接传递给服务器的真实URI(Github就是这样做的)。
就连Twitter似乎也要转向历史API了。
新的历史方法对AJAX导航非常有用。例如,pushState或replaceState允许您更新浏览器的地址栏,以便用户看到一个干净的URL,而不是一个丑陋的标签。
然而,我相信您已经意识到,对新API的支持仍然有限。location.hash在这一点上得到了更广泛的支持,这意味着你必须为那些无法利用更新的window.history内容的浏览器编写一个哈希回退。
历史API是非常好的,只要正常链接在不支持它的浏览器中正常工作
您可以使用像History.js这样的库在这些浏览器中启用它。
更多信息在这里:这是关于哈希邦,哈希邦URL的副作用。
简而言之,URL很重要。URL是永远的,很酷的URL不会改变,最后:一旦你散列了,你就不能回去了。
我认为问题是什么是支持。你现在不能只使用History API,因为它不受IE支持。你需要像GitHub那样的后备解决方案。
您已经将"兼容性"列为第一个标准。由于历史API还没有得到所有主要供应商的支持(我在看你,微软),甚至在他们最新的版本中也不支持(IE9没有),这在很大程度上意味着你必须使用哈希。(这太糟糕了,但我们已经做到了。)不仅是微软,许多移动设备都在使用一两个版本的移动浏览器,所以仍然没有。
- HTML5 window.history 不会运行新的 JavaScript
- 保留动态创建的下拉列表's在事件窗口.history.back()上选择的值-JavaScript
- 当执行进入页面时,JavaScript history.back()函数是否生成HttpRequest
- 页面上未检测到JavaScript(history.pushState)
- 如何在警报框中使用 history.go(-1) Javascript,通过 phonegap 构建 jQuery 移动
- 在Javascript中,我可以在表单提交后“清除”浏览器(history -1)吗?
- Javascript History.go 默认为页面,如果不是当前站点
- 如何使用history.pushState运行以前加载的Javascript
- Hashtags(片断标识符)VS Javascript History API
- Javascript: in ff in history对象自定义函数消失
- 人口生活选择;元素后点击javascript:history.go(-1)按钮
- 使用Javascript history.go()获取真实的“previous”;页面
- Javascript- history.pushState()在IE中不工作
- 我今天应该使用哪个JavaScript hashchange/history库(2011)
- 在Internet Explorer中不能使用GWT History JavaScript
- Javascript / jQuery: Any event for history.go(-1)?
- A button to change 'javascript:history.go() ' histor
- javascript的解决方案:history.go(-1)与花式框iFrame
- 是否可以用"Go Back"发送一个变量?javascript:history.go(-1)'
- PHP/Javascript:History.go(-1)不工作,浏览器返回