使用PrototypeJs,如何异步加载jsp页面

时间:2014-01-20 18:42:12

标签: javascript ajax json templates prototypejs

我们在应用中使用Spring和PrototypeJs。基本上我想要一个模板页面,然后用一些值填充模板页面。我找到了一个JQuery.load方法,但我们没有使用JQuery。

我发现的最近的东西是原型Template对象,它只是一个字符串。我可以在Javascript中创建一个模板,如下所示:

var template1 = new Template("user id: #id name is <span class name='userName'>#name</span>");

然后一旦我将所有数据作为json填入空白但这还不够。我想显示标签等,并且更复杂,理想情况下只需加载此模板文件一次,然后稍后填写值。如果不使用backbone.js或angularjs,这甚至可能吗?

我想我的问题是,如何更好地构建页面?目前我正在用javascript创建我的整个页面(例如new Element(“div”)。addClassName(“something”))所以我希望用jsp或其他形式创建我的页面'template',然后填写空白。

我将所有数据显示在页面上作为json。

1 个答案:

答案 0 :(得分:1)

Template类对于如何创建其成员非常灵活。为了便于阅读,我会做的是将您的模板编码为HTML中的实际页面元素,然后在使用它填充您的JSON之前将其在页面加载时删除。

<div id="template-1" class="#{classname}">
  <h1>#{headline}</h1>
  <p>#{description}</p>
</div>
<div id="articles"></div>

<script type="text/javascript">
var tmp = $('template-1').remove();
tmp.writeAttribute('id',false);
var template = new Template(tmp.outerHTML);
// do whatever with it
$('articles').insert(template.evaluate(myJSON));
</script>

这应该让你开始。以这种方式工作的主要好处是你不必保持反斜杠引号并将所有内容写在一行中,或者用+符号将它们一起打击。