我正在研究使用AJAX / jQuery从PHP脚本加载数据的替代方法,但是遇到问题A)充分理解我的问题或B)查找任何文档。
目前,我使用带有ajax的常规帖子类:
$.ajax({
url: 'script.php',
data: {
data1: $('#input1').val(),
data2: $('#input2').val()
},
dataType: 'json',
success: function(data){
$.each(data, function (key, value){
$('#data-cont').append(value);
});
}
})
script.php
返回json数据。
现在,我$('#data-cont').append(value);
的地方通常是一个巨大的混乱,我尝试在HTML标记处插入响应数据。这是非常难看的,真的很难分类和构建。
在做研究时,我见过dataType: 'html'
,它按元素ID解析数据的html。就个人而言,我认为使用PHP生成HTML比使用jquery / javascript更容易和更清晰。在PHP的情况下,您可以使用if
语句等替代语法,生成更清晰的代码和标记,这样更容易组织和开发。
所以,对我的实际问题。
用于将数据编译为HTML标记,这是标准/更优选的脚本响应,jQuery / js中的HTML或JSON构建标记?
答案 0 :(得分:1)
老实说,这取决于你需要做什么来做客户端的回应。
如果它只是需要显示的内容,请继续生成html服务器端,然后将其添加到您认为合适的dom中。
当你想要返回json时,如果你需要根据该数据做出客户端决策。
对于一个非常简单的示例,您返回的json结构包含来自数据库的客户端列表,并且此json还包括每个客户端主键和电话号码。现在,您可以创建一个包含json数据的对象,处理构建显示列表,并将onclick方法绑定到每个列表项。现在,当用户单击列表项时,您只需返回该列表项的索引,该索引将对应于json数据结构中的相同索引,而现在不必解析html属性以获取有关该列表项的更多数据/ client,你可以直接访问你的json数据结构,没有其他服务器请求或搞乱javascript。您可以在onclick中将客户端主键添加到另一个阵列,该阵列将存储应该联系的人等。然后,您可以提供一个提交按钮,将主键传递回服务器,为用户提供某些服务的逻辑(制作因此,您不必通过名字和姓氏解析客户端。
这完全是关于手头的任务,而不是“正确”或“最佳”的方式。
但值得一提的是,为什么在服务器上,你可以做什么客户端?通过使通信变轻来节省资源。 JSON很轻。
另外请注意,对于搜索引擎优化,您几乎应该始终构建所有HTML服务器端。