我正在研究一个使用HTML模板的jQuery插件.最终用户可以传入一个查看最简单级别的模板,如下所示:
<template>
<img src="/images/image_{field_id}.gif">
</template>
Run Code Online (Sandbox Code Playgroud)
该模板应该被注释掉,以便浏览器不会尝试渲染任何东西,我的代码只是将注释的内部提取为文本,然后使用jQuery将其解析为元素树.然后我做了具体的替换.
我记得读过jQuery只是使用DOM来解析HTML,例如当你这样做时
var x = $(html_string);
Run Code Online (Sandbox Code Playgroud)
jQuery实际上只是将它添加到DOM来获取元素.上面的简单操作不会呈现任何内容(直到我实际添加x到DOM中的某个地方),但是此代码导致浏览器尝试加载图像目标 - 即使我从未将其添加到DOM.以下是此效果的简单演示:http://jsfiddle.net/b5HGU/
所以基本上 - 有什么方法可以解决这个问题吗?你可以src使用jQuery 创建一个带有已知坏标签的"image"元素,但是在你真正将它添加到真正的DOM之前不要加载它吗?
另一个替代方法是在使用jQuery构造DOM 之前,在模板上完成所有解析,作为字符串.这当然是可行的,但实际上模板有许多不同的组件,在输出解析版本之前使用jQuery选择器将其转换为可导航树非常方便.我必须基本上编写自己的XML解析器.在我这么做之前,只是想知道是否有任何简单的解决方案.
| 归档时间: |
|
| 查看次数: |
1828 次 |
| 最近记录: |