记住PHP(wordpress)在服务器上运行,javascript在浏览器上运行。
因此,您的意图是:
加载站点的url(GET请求发送到服务器)
服务器以包含enquire.js
以及您的脚本enquire.register
材料enquire.js
识别分辨率并运行js函数enquire.js
运行ajax调用(这是对服务器的第二个请求)服务器使用模板中的html和jquery响应ajax调用。html()将html放在页面正文中。如果想要避免加载jquery,您可以从服务器输出json,并使用纯js模板引擎,例如。Pure 在正文中将json转换为html这是优化的吗?
Not 对我来说。
对于每个页面加载,您运行2个服务器请求,而不是一个服务器请求。在第一个请求中,您需要一些脚本(inquire.js、inquire.register脚本、jquery或模板脚本),这些脚本在页面中不起任何作用,唯一的作用是加载内容,即使jquery或模板脚本很快,从服务器输出的静态html总是显示得更快,你做了大量的工作来优化移动设备的站点,并有机会获得opposite 后果
此工作流可用于站点的小部分,而不是整个内容。至少对我来说不是。
对我来说,如果那样的话,我会
为每个模板文件创建3个版本,例如。page.php
| page-tablet.php
| page-phone.php
或header.php
| header-tablet.php
| header-phone.php
依此类推,在init上,使用服务器检测方法,如Mobile Detect 要嗅探当前设备,请将其放入静态变量类或常量中,并为template_include
附加的筛选器"-{$device}"
到所需的每个模板。(例如,如果需要“page.php”,则如果当前设备是平板电脑,则返回“page tablet.php”)
使用相同的$device
全局可访问变量,在模板文件use中注册与设备相关的js脚本get_header($device)
而不是get_header()
就像get_footer($device)
, get_sidebar($device)
. 同时使用get_template_part(\'part\', $device)
而不是get_template_part(\'part\')
等等这样你就有了每页一个请求,而不是两个,每个设备加载自己的内容,html输出被要求发送给服务器而不是客户端,这对性能有好处,对于小部分,您可以使用enquire.js
方法并使用一些媒体查询对所有内容进行调整。E、 g.对于平板电脑,您可以使用相同的台式机模板enquire.js
+ 如果分辨率超过某个断点,ajax将添加一些内容。
在我看来,与wordpress合作是获得网站移动优化版本的最佳方式。