我正在开展一个有多个页面的项目。每个页面显示10行,其中每个页面使用的布局不同。到目前为止,我已经在javascript代码中获得了每行的html代码,并且基于页面的URL,我使用了相应的html代码(if语句)。 if语句位于一个循环中,循环基于行数循环。行的结果来自ajax方法。现在我想以某种方式将它分开,以便我可以更容易地维护它,基本上是从javascript中删除html代码并将每行的html代码保存到不同的文件中。
注意:Ajax是在给定的时间内,自动发送请求到php文件中的任何新行。
我提出的一个解决方案是我可以使用php创建一个带有html代码的变量。
第二个解决方案是使用html代码创建每个记录的数组,然后将其传递给jquery进行打印。
这两种解决方案我都不知道是否是好的解决方案,可以帮助我在将来维护项目。
答案 0 :(得分:1)
您应该将结构化数据(例如,请参阅JSON)返回到您的AJAX请求。这样,您可以支持多个接口(例如,网站,应用程序):每个接口将只获取数据,并将根据需要处理呈现。
在您的示例中,您通过AJAX请求请求数据,您的服务器使用JSON结构响应进行响应。由于jQuery.getJSON,JQuery读取它并将其转换为javascript数组。使用您的数组,您遍历每个元素并将html元素插入到网页中。
答案 1 :(得分:1)
您可以考虑使用模板库(例如把手)来帮助进行模板化。 AngularJS和Ember等框架也擅长解决这些问题。
您的Web Services API应该返回JSON,而不是HTML片段。让客户端构建DOM,让服务器专注于数据。
答案 2 :(得分:0)
您有两种选择: 如果您的HTML模板不经常更改,最好的方法是使用一些java脚本模板库(例如Handlebars)在HTML结构中定义html模板,并用您的AJAX(JSON)请求中的数据填充它。 / p>
如果HTML模板经常更改或依赖于行中的某些条件(数据),则应创建PHP部分视图,以生成已填充数据的正确html结构。
对于许多行,最好创建整个表服务器端以减少请求。