1
aligo 2011-04-08 12:00:50 +08:00
cool!用到了window.history,连gaq都考虑到了
不过这个东西和hash还是不同,hash是单入口的,也就是所谓纯ajax,当然同时也可以实现混合ajax 这个东西话就必须确保每个url都是通过url还有动态方式同时可以访问的 我还是比较喜欢hash的方式,同时把a的href写成不带hash的,然后通过绑定click事件转换为hash方式就好-A- |
2
disinfeqt OP @aligo 所以我称之为「伪装 ajax」,适合给架构完毕的中小型网站,或者单独给一个 module 使用。
|
3
aligo 2011-04-08 12:13:21 +08:00
这也是ajax啊,绝对不是伪装的,一样通过xhr发起请求,只不过是为了实现像hash一样的前进后退功能,但采取更改整个url而不是hash的方式而已
|
4
flytwokites 2011-04-08 12:34:26 +08:00
太神了!
另外,我始终觉得hash方式是在http上打的一个丑陋的补丁,带hash的url不是真正的原生url,只能运用于带js的浏览器,别的爬虫什么的都不能直接使用。 |
5
sogood 2011-04-08 12:39:01 +08:00 via iPod
Github 的效果就是基于这个做出来的啊,爽。
|
6
aligo 2011-04-08 12:54:43 +08:00
@flytwokites hash只是出现在地址栏啊,爬虫爬的是href,无影响
|
8
fanzeyi 2011-04-08 17:40:50 +08:00
我一直在想他这个效果是怎么做出来的。。
原来如此.... |
9
aligo 2011-04-08 18:53:15 +08:00
@disinfeqt 。。。这个的话用hash或者什么都不用也行啊,只要判断request是xhr发起就返回局部模版就行了啊
pjax这玩意的主要作用在于实现ajax的前进后退还有各种类似gaq的记录吧 |
10
sparklo 2011-04-08 19:45:48 +08:00
eh... 这个和jquery中的history plugin有什么本质的区别么?
http://www.serpere.info/jquery-history-plugin/samples/ajax/#1 |
11
reorx 2011-04-08 20:10:05 +08:00
请教各位一个问题: Pjax是怎么实现地址栏URL转换却不加载相应页面的呢?比如改变hash,只需要给window.location.hash 赋值即可,而给window.location.href赋值浏览器就自动加载那个URL了。
|
12
fanzeyi 2011-04-08 20:39:33 +08:00
刚刚发现 tumblr 也是这个效果
http://www.tumblr.com 点右上角的log in 会有一个动画效果到 http://www.tumblr.com/login 然后再点右上角的 Sign up 会动画效果到 http://www.tumblr.com/register |