作者red0whale (red whale)
看板Ajax
标题[问题] 如何点击超连结後而不让画面闪烁一下
时间Tue May 26 21:57:01 2015
就像youtube一样,请随便点一个连结,你将会发现画面在点击连结之後并不会闪烁一下才
进入下一页面,而是很平顺直接地就进入下一页面了,但明明网址有改变啊,为什麽它可
以直接就进入下一页面而不让画面闪烁呢? 它也没用框架呀,但是即使用了框架某部分的
子框页也会闪烁一下啊,但是youtube却是很直接地就过去了,它是怎麽办到的?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 219.80.136.194
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1432648635.A.AD5.html
1F:→ mmis1000: PJAX <- google it please 05/26 23:45
2F:→ bbcust: spa 05/27 12:03
3F:推 mrbigmouth: history.pushState 05/27 13:55
4F:→ red0whale: 各位,虽然我知道是PJAX做出来的,但是该怎麽做? 各位 05/27 13:57
5F:→ red0whale: 有范例可以提供给我吗? 05/27 13:58
6F:→ red0whale: 请问jquery的$(document).pjax({...});要怎麽用? 上网 05/27 13:59
7F:→ red0whale: 找好像都找不到耶 因为根本没有范例可以给我参考 05/27 14:01
8F:推 mrbigmouth: pjax要有後端配合 05/27 16:51
9F:→ mrbigmouth: jQuery本身没有pjax method 不过有套件 05/27 16:51
11F:→ mrbigmouth: 其实你就把上面大家提的关键字去google一定有做法啦 05/27 16:52
12F:→ mrbigmouth: 要注意的是这种东西都是前後端都要做才能办到的 05/27 16:52
13F:→ mrbigmouth: 不是很简单的东西 请有点耐心慢慢学 05/27 16:52
14F:→ mmis1000: 那2个字就是全部了阿,就是用ajax把内容读进来目前网页 05/28 03:35
15F:→ mmis1000: 然後用pushState更新网址而已啊,真的不是特别技术 05/28 03:36
16F:→ mmis1000: 当然需要些後端code让网址跟内容能一致就是了 05/28 03:37
17F:→ mrbigmouth: 不是特别技术 但对於会这样问问题的原po应该还有很多 05/28 09:52
18F:→ mrbigmouth: 科技术要爬 XDD 05/28 09:52
19F:→ mmis1000: 严格是PJAX也不一定要後端,也是有用 #hash 当网址的作 05/28 10:34
20F:→ mmis1000: 法,程式读到 hash 再用 ajax 跟伺服器捞资料 05/28 10:35
21F:→ mmis1000: 更正 不一定要後端 -> 不一定要 pushState 05/28 10:36
22F:→ mmis1000: 有时候会看到网址长这样的 /#!/somehashs 的 05/28 10:37
23F:→ mmis1000: # 後面其实就是hash tag 05/28 10:37
24F:→ mrbigmouth: hash资料不会被浏览器送到後端 这样做就没办法SEO了 05/28 14:11
25F:→ mrbigmouth: 对搜寻引擎而言每页都长一样 pushState有做好後端则 05/28 14:12
26F:→ mrbigmouth: 无此问题 05/28 14:12
27F:→ mmis1000: 那个基本上是当成不支援pushState的fallback用吧? 05/28 15:38
28F:→ mrbigmouth: 不支援pushState的浏览器管他去死 (问题发言) 05/28 15:49
29F:推 tomin: #!是为了给SEO爬 不然早期都只有用# 05/29 12:31
30F:→ tomin: 当然後端能直接吐内容会更理想 05/29 12:32
31F:推 lolikung: 楼上大大,有 #! 的相关资料可提供参考吗 感谢 :D 06/01 00:37
32F:推 s25g5d4: 关键字 hashbang 06/01 00:51