我是一名免费的网络开发人员,我总是面临同样的问题。如何填充表或从数据库中提取的任何其他数据并需要GUI表示?
选项包括:
var gui = "<h1>" + data.title + "</h1">; $("myTitle").html(gui);
{"title":"Hello!"..some other data....., {["<h1>%d</h1>], ["<a href='#'...]}"
答案 0 :(得分:2)
对我来说 - 绝对是选项#2
服务器不应该知道页面显示数据的确切方式
您可以将其视为“关注点分离”问题:服务器关注检索所请求的数据,就是这样。
然后,客户方有责任以其选择的任何方式呈现数据。
如果你想改变数据的呈现方式,当你使用你提到的任何其他方法时,你将不得不改变你的服务器端逻辑。
选项#2甚至为您提供了在不更改服务器端的情况下完全更改客户端类型(wpf / winform /任何客户端)的理论可能性。
P.S。作为旁注 - 请查看jqgrid以获取非常棒的表插件。
答案 1 :(得分:1)
简单回答:#2。
更多参与答案:#5
核心是,您的演示文稿需要与服务器端处理分开。您只需要执行此操作一次的简单方案,发送回JSON并在客户端填写它。关键点是:如何重用此显示逻辑?或者,如果我的显示逻辑依赖于JSON回来并且我的JavaScript变得混乱和粗糙怎么办?如果我想返回两个非常不同的东西之一并且不想让我的javascript超级复杂怎么办?
嗯,那就是你需要更进一步来分割你的渲染场景。这是您可以拥有shell页面,控件,视图或您给框架提供的任何内容。您的目标是使用服务器端编程逻辑来填充该视图/控件,呈现服务器端,然后将整个HTML块传回给您的JavaScript AJAX调用。然后可以直接加载这个大块而无需任何额外的脚本。
有折衷方案!在以下情况下不要使用它:
在以下情况下使用此渲染技术:
所以,你的第一个目标是:将渲染逻辑与服务器端代码分开。永远不要将HTML放在代码隐藏中,但如果可以的话,你可以考虑渲染页面片段和通过网络传回所有HTML,让服务器生成HTML,而不是JavaScript。