如何优化要在 javascript 字符串中使用的长 html 代码的创建
How to optimize the creation of long html code to be used in javascript string
我需要定义包含很长 html 代码的 javascript 变量。
下面是一个简短的示例:
var text = "Select one item:<br>";
text += "<ul class='thumbnails'><li class='span3'><a href='#' class='thumbnail'><img src='http://placehold.it/260x180' alt=''></a></li></ul>";
由于 html 会长得多,我宁愿在纯 html 中工作,而不是将文本附加到 javascript 字符串中。
我想创建一个单独的 html 文件,但我想这需要 Ajax 调用来获取其内容。处理这个问题的最佳方法是什么?
正如N.Zakas在"可维护的javascript"一书中所说,你应该"将html排除在javascript之外",通过UI层的松散耦合来提高代码的高可保留性。
除了 ajax 解决方案之外,您还可以将标记作为注释放置在 html 文件中并通过 javascript 读取它(作为常规 DOM 节点),或者您可以使用某种微模板系统(例如 handlebars)并将标记放在脚本块中(这个想法是将标记放在预期找到的位置而不是 JavaScript 逻辑中)
一种可能的解决方案是使用模板。有一些JavaScript库提供模板,下划线.js是一个:http://underscorejs.org/#template,或者有关如何使用它进行模板 http://www.headspring.com/blog/developer-deep-dive/an-underscore-templates-primer/的更多详细信息
加下划线非常适合许多其他事情。
您可以将文本分解为实际的 HTML 对象。
var thumbnailsUL = document.createElement('ul');
for (index in {your-thumbnails-list}) {
var thumbnail = document.createElement('li');
thumbnail.innerHTML = {whatever you need, more objects or html as text};
thumbnailsUL.appendChild(thumbnail);
}
理想情况下,没有理由在JavaScript中构建这个 - 你能不从服务器发出它吗?
与其在 Javascript 中构造 HTML 作为字符串,我宁愿建议你在页面本身中发出这些 html 元素并在加载时隐藏。然后在Javascript中,您可以选择该容器并显示它。
- 创建一个循环来简化HTML和CSS代码
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- Markdown模式代码镜像正在创建
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 创建对象函数原型和代码是错误的
- 如何在不编写样板代码的情况下在Node中创建可重用函数
- 代码挑战:创建一个跟踪对象实例总数的类Foo
- 正在从帧创建时间代码
- 如何使用我的Jquery代码创建委托事件侦听器
- JavaScript代码优化-创建可重用类
- 如何在jquery中为object键创建一个工作变量以避免额外的代码
- 使用Javascript创建的Cookie在C#代码中不可访问..任何原因或其他选择
- 使用Promise来创建“;原子“;Javascript中的代码块
- HTML 运行时创建代码非常慢
- 建议为选择图像创建代码
- 运行Greasemonkey在DOM中创建代码
- 创建代码以逐个运行函数(DOM)的一些想法
- 从Web表单创建代码片段(易于剪切和粘贴)
- 你能为iPhone创建代码吗;添加到主屏幕'按钮放在网页上
- 如何在组合中创建代码