如何设计动态脚本生成作为AJAX响应的一部分?

时间:2011-12-06 10:05:20

标签: php javascript ajax json

我正在尝试使用模块化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}}')
    
  • 或者可能有更好的方法论?

1 个答案:

答案 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>标记插入您的网页。