所以我在Django中开发这个Web应用程序。确切的Web框架并不重要,但重点是:我们在代码,数据和实际HTML之间有一个很好的分离。然而,我们越往前走,我们越发现我们希望保持在单个网页上并使界面通过AJAX请求响应用户操作。现在我发现自己正在编写所有这些处理函数,这些函数需要来自AJAX请求的特定输入,并通过基本连接字符串和数据来构建页面的大部分内容。突然间又是1999年,我手动创建HTML字符串。这不可能吗?
所以我的问题是,在浏览器端以系统方式创建HTML有什么好的模式/框架/ ...我知道有一些jQuery的模板插件,在我承诺其中之一之前,我想知道是否有一个更基本的方法解决这个问题并不是那么罕见?
答案 0 :(得分:1)
我以前做过的是让我的服务器进行处理和代码生成。保持客户的负担。
您可以加载部分(视图)并返回它们,json编码或其他方式。如果您使用json,请将HTML设置为响应对象中的“内容”或类似内容。
这样,就没有代码重复,因为您可以使用相同的视图。诀窍就是如何拆分它们。
答案 1 :(得分:1)
你是否考虑过在javascript类中保存一个javascript dom对象数组,而不是构造html字符串,它们将关系数据库数据保存在其中,然后根据用户交互使用AJAX循环/构建它们?这就是我通过动态预加载在一个页面上维护近500张照片(分成几组)的照片库(允许用户在选择时立即获得完整尺寸的图像)。
答案 2 :(得分:1)
也遇到了这种1999年的感觉,并为jQuery tmpl安顿下来。 它将允许您将模型和视图分开,并有更多时间专注于业务逻辑。您可以在文档正文中的任何位置使用text / x-jquery-tmpl类型的脚本标记来定义模板,并通过其ID来对其进行处理。