pjax的DIY
在网上看到有个js包pjax,能快速实现网页的无刷新加载。这当然是个很棒的功能:实现网站效果的各种包只用加载一次,需要查看的内容进行局部刷新,所以能整体提高网站的响应速度,改善浏览体验。最近在写一个类似gitbook和看云的文档写作框架,它们貌似都用了类似pjax的技术,所以,pjax必须拿来用用。
然而理想是丰满的,现实却是骨感的。不知bug在什么地方,pjax的效果始终出不来。拿来主义无法实现,只能靠自己动手。研究了一下pjax的代码,原来就是popstate+ajax,怪不得叫pjax。配料都知道了,菜还做不出来么?
DIY顺理成章:ajax负责网页内容的局部刷新,history.pushState负责把实际访问过但表面看不出来访问过的网址加入访问历史,popstate负责把正在访问的内容的来源网址推上浏览器的地址栏。Done。
实现了简单的无刷新加载,测试了一下,效果还行。如果还要继续提升响应速度,那就得在后端写点东西了,毕竟直接ajax获取的网页内容是全页内容,很多都是不必要的。但是,这样的改进能被感知到吗?
- 版权声明:本作品使用知识共享(Creative Commons)的署名-非商业性使用-禁止演绎 4.0 国际许可协议。非商业转载请注明出处(作者及原文链接),商业转载请联系作者获得授权。


给站长留言