Copyright © 2020-2026
卯光宇 All Rights Reserved


pjax的DIY

在网上看到有个js包pjax,能快速实现网页的无刷新加载。这当然是个很棒的功能:实现网站效果的各种包只用加载一次,需要查看的内容进行局部刷新,所以能整体提高网站的响应速度,改善浏览体验。最近在写一个类似gitbook和看云的文档写作框架,它们貌似都用了类似pjax的技术,所以,pjax必须拿来用用。

然而理想是丰满的,现实却是骨感的。不知bug在什么地方,pjax的效果始终出不来。拿来主义无法实现,只能靠自己动手。研究了一下pjax的代码,原来就是popstate+ajax,怪不得叫pjax。配料都知道了,菜还做不出来么?

DIY顺理成章:ajax负责网页内容的局部刷新,history.pushState负责把实际访问过但表面看不出来访问过的网址加入访问历史,popstate负责把正在访问的内容的来源网址推上浏览器的地址栏。Done。

实现了简单的无刷新加载,测试了一下,效果还行。如果还要继续提升响应速度,那就得在后端写点东西了,毕竟直接ajax获取的网页内容是全页内容,很多都是不必要的。但是,这样的改进能被感知到吗?


读后有收获欢迎打赏站长吃碗螺蛳粉😹


点赞    

扫一扫,点右上角⋯分享




   
   
    给站长留言    
😀😂😅😆😊😍😝🤭🌹🤝😵😭😱😳😣😴
昵称*
验证*:8×5 =