浏览 1253 次
锁定老帖子 主题:如何使HTML 模板的标准化
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2015-10-16
方法一 幕后DOM 已经使用了许多年的一种方法就是创建一个“幕后”的DOM,使用隐藏属性或者不显示功能:以此隐藏其在视图中的位置。 例如: div id="mytemplate" hidden> <img src="logo.png"> <div class="comment"> </div></div> 使用这种方法确实有很多简便之处,如: ◇使用DOM,浏览器可以识别DOM他们可以很容易复制; ◇没有内容渲染,可以隐藏区块的显示。 但是也存在一些弊端,如: ◇这将是自主行为,即使内容被隐藏,网络请求将在图片中显示; ◇风格主题很难设置,网页被嵌入,都必须在前面加一个CSS规则。 #mytemplate,这是一个非常脆弱的前缀,将样式限制在模板范围中,无法确定未来可能出现的命名冲突。例如,当嵌入的网页具有相同的ID,就会掉到另一个陷阱。 方法二 重载脚本 重载脚本,即将ript>重载,并将其内容作为字符串进行操作。 例如: <script id="mytemplate" type="text/x-handlebars-template"> <img src="logo.png"> <div class="comment"> </div></script> 这种方法的优势就是:没有呈现,也就是ript>可以默认为display:none,所以浏览器不会渲染这一块;自主性,若脚本的类型不为 "text/javascript",那么浏览器就不会将它的内容当作javascript来解析。 唯一的弊端就是存在 安全问题,这里建议使用.innerHTML,模板嵌入用户提供的数据进行运行时字符串很容易导致XSS漏洞。 总结 相信大家都还记得当jQuery使DOM操作变得更简单时,结果是querySelector()/querySelectorAll(),就作为本机功能添加到到平台。这是显而易见的巨大成功,一个库图宣传了使用CSS选择器来获取DOM功能,使其被规范采纳。 学习资料分享:http://www.yuantuan.com/index/index/edu 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |