我正在尝试使用模块化AJAX设计,其中返回一个脚本来处理和显示有效负载。我目前有以下JSON响应工作,但我想在结构化应用程序方面提出一些建议,以便以更易维护的方式支持它。
{
payload: "<div class=\"test\">Something</div>",
load: "jQuery(this.payload).appendTo('body')"
}
要生成我已考虑的“加载”脚本:
通过this
传递所有动态变量并从服务器加载固定的JavaScript
jQuery(this.payload).appendTo(this.appendTo)
将JavaScript中的特殊模板替换为动态内容:
jQuery(this.payload).appendTo('{{APPENDTO}}')
或者可能有更好的方法论?
答案 0 :(得分:0)
在我拥有以下结构之前;
[
{
args: ["<div class=\"test\">Something</div>"],
method: "appendTo",
selector: "body"
},
...
]
然后你可以这样做;
var foo = JSON.parse(theJSON);
for (var i=0;i<foo.length;i++) {
var curr = foo[i];
jQuery.fn[method].apply($(curr.selector), curr.args);
}
这支持最常见的DOM方法,但也可以支持remove()
,empty()
等;
[
{
args: [],
method: "remove",
selector: ".someElement"
},
...
]
如果这仍然过于严格,您应该完全跳过JSON,只需将响应作为<script>
标记插入您的网页。