我使用 MVC PHP 框架使我的 Web 应用程序尽可能保持干爽。我所有的 HTML 模板都整齐地藏在我项目应用程序范围内的一个文件夹中。
问题是,每当我使用 JSON 字符串通过 AJAX 构建页面时,我都需要重复使用这些模板中的很多行,并将它们复制到我的 JavaScript 文件中的某个位置。这意味着我的 JavaScript 文件中的模板与我的 PHP 应用程序中的模板之间存在代码重复。
我想知道如何防止这种重复。一种方法当然是使用 AJAX 加载模板,但是我最终会得到一个页面的双重 AJAX 请求。此外,PHP 模板使用与 MooTools 不同的标记样式来表示变量,但 HTML 设置是相同的。
总结一下:是否有任何巧妙的方法或工具来防止模板重复,以便一个文件可以同时用于 PHP 和 JavaScript?郑重声明:我使用 MooTools 框架来构建我的 JavaScript 文件。
编辑
经过一些研究,我找到了我认为最好的答案。对于那些感兴趣的人:
PURE 将 HTML 表示和 JavaScript 逻辑完全分开,因此您不必费心在脚本中包含 HTML 元素。模板可以简单地在 HTML 文件中提供。
示例:
// JSON string
{ 'who': 'me' }
// In your rendered HTML page:
<div id="who"></div>
// After the JSON string is sent back
<div id="who">me</div>
此外,它可以被多种库使用:MooTools、jQuery、dojo、Prototype 等。
最佳答案
有趣的问题,我有时也在努力解决。
您可以将您的 html 放在您的 javascript 代码中,这是重复的,您希望避免这种情况
您可以使用单独的 ajax 调用加载您的 html,这会导致运行更多的 ajax 调用,并可能减慢您的应用程序。你可能想避免它。
您可以在将加载数据的 Ajax 调用中传递您的 html。这样一来,您只有一个电话。让您的 PHP 打开您的模板,并将它们添加到数据 json 流中。
你可以把模板放在你原来的html里面,把它隐藏起来。
我会选择解决方案 3,如果模板很小且有限,我可能会选择 4。
然后 JSon 将类似于 {"data": ... your original data object, "templates":{...}}
关于php - PHP 和 JavaScript 模板的互换性(防止重复),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7121074/