我的PHP模板如下所示:
$html=file_get_contents("/path/to/file.html");
$replace=array(
"{title}"=>"Title of my webpage",
"{other}"=>"Other information",
...
);
foreach(replace AS $search=>$replace){
$html=str_replace($search,$replace,$html);
}
echo $html;
我正在考虑切换到javascript / ajax模板系统。 AJAX将以JSON格式获取$replace
数组,然后我将使用javascript替换HTML。
该页面将是一个普通的.html
文件,并且在ajax完成之前将显示加载屏幕。
这有什么真正的优势,还是过渡浪费时间?
我认为这有利的几个原因是:
请让我知道你的想法。
答案 0 :(得分:0)
我认为你忘记的最重要的方面是:
但我想这实际上取决于你想做什么。
对于快速简单的页面,这似乎是你的情况,坚持后端增强功能。
对于能够承受加载时间且不关心SEO的动态/交互式应用程序,您可以将大部分内容委托给前端。但是然后使用像Angular这样的高级框架来处理模板,缓存等......
答案 1 :(得分:0)
我在其他项目中使用过类似的设计模式。有几种方法可以做到这一点,任务涉及管理多个项目或应用程序模块。我假设您正在与开发人员团队合作,而不是使用PHP或JavaScript MVC框架。
出于多种原因,我反对使用“搜索和替换”方法,特别是使用服务器端脚本语言来解析HTML文档作为模板工具包。
为什么呢?
最初,使用JavaScript的AJAX可能听起来像一个简洁的想法,但我仍然不相信。
为什么?
<noscript>
和/或<iframe>
标记。和,
管理非JavaScript浏览器的替代模板即可
乏味的。我不是说两者都不可能。您仍然可以使用PHP或JavaScript进行模板化。
但是,我的“理想”Web结构应该包含可靠的MVC,如Zend,Spring或Magnolia。这些MVC框架包括许多有用的功能,如Web服务,数据映射和模板工具包。当然,具有配置要求的初学者很难将MVC集成到您的项目中。但最后,您可以将配置,MVC概念,自定义SQL查询和测试用例中的任务委派给开发人员。那是我的两分钱。
答案 2 :(得分:0)
我的2cents是在模板端(javascript)做逻辑更好。如果您有高流量站点,则可以将一些处理卸载到调用该站点的每台计算机。也许更少的服务器。
使用像AngularJs这样的Javascript框架,模板的内容非常简单有效。框架将为您进行缓存。
是的,SEO可能是某些网站的问题。您可以使用代理工具来呈现站点并将静态html返回到bot。另外我认为现在有些机器人会渲染javascript。
最后,我喜欢在前端模板,因为我喜欢后端是通用数据提供程序(RESTful API)。通过这种方式,我可以构建一个通用后端,以通用方式驱动Web /移动和其他平台。 UI逻辑可以是javascript中的独立内容。
但它归结为您的应用程序的设计需求。我构建了许多软件作为服务应用程序,因此单页应用程序对我来说很有效。