我在页面上设置了一些jquery/php交互。它向服务器提交一些数据,并取回数据记录,然后这些记录将在页面上对齐,以便进行比较和可能的操作。
我的问题是,返回信息然后显示信息的最佳实践是什么?
。
昨晚我在脑子里翻来覆去,不知是否有一种方法会因为任何特定的原因而更好。
我不是js大师,所以不太确定这些不同方法的优缺点和注意事项。
发布于 2009-05-20 20:27:13
我认为它最终取决于你的应用程序。
纯HTML是最简单的,你只是顺其自然和中提琴。JQuery使添加适当的事件和不合适的事件变得轻而易举。
但是,每当我使用AJAX时,它总是演变成返回JSON和动态构建元素。例如,如果你正在填充一棵树,那么得到合适的筑巢可能会变得很混乱。这迫使您无论如何都必须编写客户端代码,这样从一开始就使用JSON就更干净了。
另外,如果您计划使用来自其他页面的数据调用,那么使用JSON是可行的,因为HTML将被修复。
发布于 2009-05-20 20:32:44
这完全取决于在应用程序中设置东西的方式。例如,我更喜欢返回JSON (列表中的第二种方法),因为我有一个“错误代码”参数,在更新页面上的内容之前我签入了onSuccess函数,如果不是零,我会通知用户错误,包括从服务器返回的错误消息(服务器端验证、数据库超时等等)。
发布于 2009-05-20 21:29:37
我想你错过了一个非常有效的选择,我经常用它。这是我的典型模式它还没有让我失望..。:-)
下面是我使用的基本jQuery模板:
$(function() {
$.getJSON('/some/page',{foo:bar,bar:foo},function(json) {
if(json.outcome == 'success') {
$('body').prepend(json.html);
} else {
// Somehow let the user know why it didn't work
alert(json.error);
}
});
});下面是我使用的基本后端(在我的例子中是PHP)结构:
<?php // Page: '/some/page'
/* Blah Blah Blah... do whatever needs to be done... */
// If everything turns out okay (assuming '$output' is the HTML
// you want to display...
echo json_encode(array('outcome'=>'success','html'=>$output));
// If something goes wrong... just do:
echo json_encode(array('outcome'=>'error','error'=>'Uh oh... something is broken'));当然,您希望通过将它们放入某个变量或其他方面来更具体地处理您的错误。但是你应该有个主意。当然,您还可以向json输出添加更多信息。您可以有一些预先制作的HTML和一些其他信息,如‘成功通知’或一个新的类名的一些元素,我不知道.不管什么..。可能性是无限的。
无论如何,我之所以选择这个路径,是因为(根据我的经验)在DOM中添加预先生成的HTML通常更快,而不是在JSON上循环并插入内容,除非它只是一些文本来替换到元素中。但是,我展示的方法是,国际海事组织,这两个世界都是最好的。可以将HTML作为字符串附加到JSON属性之一。
快乐jQuerying :-)
https://stackoverflow.com/questions/890004
复制相似问题