php - PHP 和 JavaScript 模板的互换性(防止重复)

标签 php javascript json model-view-controller mootools

我使用 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/

相关文章:

php - 将数组值插入数据库

javascript - (angular2-highcharts) 静态解析符号值时遇到错误中的错误

java - 如何在我的 Ebean 实体中拥有正确的 JsonNode 字段?

json - Elasticsearch大批量上传查询

javascript - jQuery AJAX 代码确实运行,但 MySQL 帖子没有被删除

php - 如何将 composer 包包含到纯 php 中?

php - 如何有效地使用 laravel 5.5 eloquent 进行复杂的连接和分组

javascript - 将数字转换为十进制,将数字替换为 JavaScript 中的 12 个字母之一

javascript - jQueryUI 自动完成错误 : this. 源不是函数

java - 客户端响应Application.Json