正文

一周前,给博客加了段伪Ajax尝鲜,最后又移除了它。

从代码上来说,大多数WordPress主题使用的异步加载方法都是“假的Ajax”,它们虽然有不刷新跳转的效果,但并不能节省流量。这些代码的原理大同小异:先异步获取完整页面,再选出主要元素,最后把主要内容填充到当前页面。在这个过程中,浏览器仍需要获取完整页面,并没有节省流量。

一种理想的情况是异步获取Json,之后解析它并填充到当前页面。如此一来,既能节省流量加快速度,也能达到不刷新跳转的效果。在WordPress上实现这种功能需要添加很多内容,有添加它的时间还不如自己写一套博客程序。我对前端后端都不懂,所以也懒得弄。

目前Google Adsense还不支持Ajax:块广告还好,可以手动调用Push方法刷一下,但若放置自动广告,第二次调Push时会报enable_page_level_ads冲突,不能刷新。

如果想搞一个全站音乐播放器或类似的东西,那么还是加上伪Ajax为好,如果使用Adsense,那么Ajax就需要酌情考虑了。

关于加载速度:我的博客在使用Wp-Super-Cache插件,文章是静态化的,即使没有异步加载,速度也应该不会太慢。腾讯云学生机的小水管偶尔会卡住,但无伤大雅。

我来吐槽

*

*

4位绅士参与评论

  1. 后宫学长01-08 22:45 (4天前)回复

    确实……
    就连我修改的主题也是如此。

    我发现这个博主的主题的AJAX是自己写的,真实节省流量。
    https://blog.qwq.moe/

    • 野兔01-09 01:40 (4天前)回复

      蚊子大佬自己搞的Typecho路由,大佬们的日常操作。

  2. Sparrow12-25 09:33 回复

    可以试试看前端SPA(vue,angular,react,等玩意),然后用wp rest来实现数据交互,应该就是纯JSON了,至于谷歌Adsense我记得有插件的,例如vue的话可以用vue-google-adsense之类的解决( ̄▽ ̄;)

  3. 熊猫小A12-13 16:31 回复

    哈哈,我也是用的假PJAX,仍然请求的是完整网页。曾经有一段时间是通过在header里面做标记,服务端检测到后只返回对应的部分,但这样写起来挺麻烦的。
    Typecho好像没有原生的JSON API,听说Ghost有,用来写一个完全的单页网站应该不错。

    • Ghosin12-23 08:45 回复

      同假PJAX受害者,但hexo没后端好像没有办法检测是否返回完整页面呢... 或许可以额外生成文章json然后加载渲染文章,但那就需要自己重写pjax了吧...我还是等着换vuepress吧 🙂