【问题标题】:Is it good to return html code to jquery?将html代码返回给jquery好吗?
【发布时间】:2015-04-29 17:42:01
【问题描述】:

我正在处理一个包含多个页面的项目。每个页面显示 10 行,其中每个页面使用的布局不同。到目前为止,我在 javascript 代码中拥有每一行的 html 代码,并且基于页面的 url,我使用了适当的 html 代码(if 语句)。 if 语句位于一个循环中,该循环基于行数进行循环。行的结果来自 ajax 方法。现在我想以某种方式将它分开,以便我可以更轻松地维护它,基本上是从 javascript 中删除 html 代码并将每一行的 html 代码保存到不同的文件中。

注意:Ajax 在给定的时间内,会自动向 php 文件发送任何新行的请求。

我提出的一个解决方案是我可以使用 php 来创建一个带有 html 代码的变量。

第二种解决方案是使用 html 代码创建每个记录的数组,然后将其传递给 jquery 进行打印。

我不知道这两个解决方案是否都是好的解决方案,并且可以帮助我将来维护项目。

【问题讨论】:

  • 所以,总结一下您的 JS 代码中有 HTML 模板(存储在字符串中)。现在您想从其他文件(尤其是 PHP 文件)动态加载 HTML 模板。我理解正确吗?
  • 我认为您需要在 php 中创建 Web 服务,它将返回您的行。这是简单而动态的方法。因此,如果网站是实时的并且您想要进行更改,那么您可以使用后端的数据库来完成。
  • @suvroc 是的,你是对的,我正在寻找类似模板函数的东西

标签: javascript php html ajax


【解决方案1】:

您可以考虑使用诸如把手之类的模板库来帮助进行模板化。 AngularJS 和 Ember 等框架也擅长解决这类问题。

您的 Web 服务 API 应该返回 JSON,而不是 HTML 片段。让客户端构建 DOM,让服务器专注于数据。

【讨论】:

  • mustache.js 怎么样?
【解决方案2】:

您应该向您的 AJAX 请求返回结构化数据(例如,参见 JSON)。这样,您可以支持多个接口(例如,一个网站、一个应用程序):每个接口将只获取数据,并根据需要处理渲染。

在您的示例中,您通过 AJAX 请求请求数据,您的服务器以 JSON 结构的响应进行响应。由于jQuery.getJSON,JQuery 读取它并将其转换为 javascript 数组。使用您的数组,您可以遍历每个元素并将 html 元素插入网页。

【讨论】:

  • GHugo 这就是我现在正在做的事情,我在循环内有带有 html 代码的 if 语句,它读取每个元素并使用 html 代码创建一个变量。问题是很难维护 html 代码,因为需求在变化,因此我正在寻找一种更好的方法来处理来自 AJAX 请求的数据的呈现方法
【解决方案3】:

您有两个选择: 如果您的 HTML 模板不经常更改,最好的方法是使用一些 java 脚本模板库(例如Handlebars)在您的 HTML 结构中定义 html 模板,并用来自您的 AJAX (JSON) 请求的数据填充它。

如果您的 HTML 模板经常更改或依赖于行中的某些条件(数据),您应该创建 PHP 部分视图,以生成已填充数据的正确 html 结构。

对于许多行,最好创建整个表服务器端以减少请求。

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2011-08-27
    • 2011-05-09
    • 2013-11-19
    相关资源
    最近更新 更多