用数据库响应填充表的一般方法

时间:2011-07-07 21:28:01

标签: jquery html xml ajax json

我是一名免费的网络开发人员,我总是面临同样的问题。如何填充表或从数据库中提取的任何其他数据并需要GUI表示?

选项包括:

  1. 服务器返回所有GUI和数据。嵌入HTML代码。
  2. 服务器返回XML / JSON数据并用内部javascript填充它?即var gui = "<h1>" + data.title + "</h1">; $("myTitle").html(gui);
  3. 服务器返回嵌入了模板的XML / JSON数据? {"title":"Hello!"..some other data....., {["<h1>%d</h1>], ["<a href='#'...]}"
  4. 使数据请求的页面包含隐藏DIV中的模板,填充数据?
  5. 或者我可能不知道的任何其他方式?

2 个答案:

答案 0 :(得分:2)

对我来说 - 绝对是选项#2 服务器不应该知道页面显示数据的确切方式 您可以将其视为“关注点分离”问题:服务器关注检索所请求的数据,就是这样。
然后,客户方有责任以其选择的任何方式呈现数据。

如果你想改变数据的呈现方式,当你使用你提到的任何其他方法时,你将不得不改变你的服务器端逻辑。

选项#2甚至为您提供了在不更改服务器端的情况下完全更改客户端类型(wpf / winform /任何客户端)的理论可能性。

P.S。作为旁注 - 请查看jqgrid以获取非常棒的表插件。

答案 1 :(得分:1)

简单回答:#2。

更多参与答案:#5

核心是,您的演示文稿需要与服务器端处理分开。您只需要执行此操作一次的简单方案,发送回JSON并在客户端填写它。关键点是:如何重用此显示逻辑?或者,如果我的显示逻辑依赖于JSON回来并且我的JavaScript变得混乱和粗糙怎么办?如果我想返回两个非常不同的东西之一并且不想让我的javascript超级复杂怎么办?

嗯,那就是你需要更进一步来分割你的渲染场景。这是您可以拥有shell页面,控件,视图或您给框架提供的任何内容。您的目标是使用服务器端编程逻辑来填充该视图/控件,呈现服务器端,然后将整个HTML块传回给您的JavaScript AJAX调用。然后可以直接加载这个大块而无需任何额外的脚本。

有折衷方案!在以下情况下不要使用它:

  1. 您的数据和显示是直截了当的
  2. 你一次使用这件作品
  3. 您渲染的视图很棒。记住,你是通过电线传递的。循环使用JavaScript中的数据,构建单元格可能比一次传回表格的所有文本更快。
  4. 在以下情况下使用此渲染技术:

    1. 你传回了高度可变的内容。
    2. 显示逻辑复杂多变。
    3. 您的显示逻辑取决于您不希望客户知道/关心的一些数据。
    4. 所以,你的第一个目标是:将渲染逻辑与服务器端代码分开。永远不要将HTML放在代码隐藏中,但如果可以的话,你可以考虑渲染页面片段和通过网络传回所有HTML,让服务器生成HTML,而不是JavaScript。