如何决定JavaScript必须生成多少HTML?
我开发了一个JavaScript月历,所有HTML都是由脚本动态生成的。如何决定JavaScript必须生成多少HTML?,javascript,html,localization,locale,templating,Javascript,Html,Localization,Locale,Templating,我开发了一个JavaScript月历,所有HTML都是由脚本动态生成的。 优点是,在包含JS和CSS文件之前,HTML只需要一个容器: <div id="calendar-box"></div> 但在我看来,这并不是最好的解决办法;我通常会尽量减少JavaScript中的语言环境。除此之外,thead会产生大量JavaScript生成的HTML,这也不是很好 我看到有人建议使用JavaScript模板插件: var t = $.template('<div>
优点是,在包含JS和CSS文件之前,HTML只需要一个容器:
<div id="calendar-box"></div>
但在我看来,这并不是最好的解决办法;我通常会尽量减少JavaScript中的语言环境。除此之外,thead
会产生大量JavaScript生成的HTML,这也不是很好
我看到有人建议使用JavaScript模板插件:
var t = $.template('<div><img src="${url}" />${name}</div>');
它是一个混合解决方案,但允许通过服务器端模板管理区域设置。
您对此有何看法?这是性能和可用性之间的一条细线。您使用的javascript越多,客户端就越复杂。您选择的硬编码方法和多文件解决方案越多,维护一切可能就越复杂和混乱。计算能力通常不再是问题,但我们有所有的移动和平板电脑客户端,有时操作系统和浏览器都过时了。如果你想支持所有这些,我会尽量少用javascript 如果你的日历只显示在一个地方,并且从不改变它的位置或外观,我建议你对它进行硬编码,然后根据用户选择的语言只更改区域设置。如果使用php,只需像javascript方法一样使用正确的配置包含所需的语言文件,然后直接将变量放在所需的位置即可。如果情况正好相反,请编写一个完全基于javascript的模块来生成日历,并使用php在服务器端包含一个javascript语言环境文件,然后使用它 语言EN.php:
<?php
return array(
"monthNames" => array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
"weekDayNames" => array('Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'),
"closeText" => 'Close' // text to display in the "close" button
);
?>
index.php
<?php
$LOCALES = include("language-EN.php");
?>
...
<table class="calendar">
<thead>
<tr>
<td colspan="2"><a href="#">←</a></td>
<td colspan="3">
<div class="month">June</div><div class="year">2013</div>
</td>
<td colspan="2"><a href="#">⇆</a></td>
</tr>
<tr class="weekDays">
<td><?php echo $LOCALES['weekDayNames'][0] ?></td><td><?php echo $LOCALES['weekDayNames'][1] ?></td><td><?php echo $LOCALES['weekDayNames'][2] ?></td><td><?php echo $LOCALES['weekDayNames'][3] ?></td><td><?php echo $LOCALES['weekDayNames'][4] ?></td><td><?php echo $LOCALES['weekDayNames'][5] ?></td><td><?php echo $LOCALES['weekDayNames'][6] ?></td>
</tr>
...
...
2013年6月2日
...
<?php
return array(
"monthNames" => array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
"weekDayNames" => array('Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'),
"closeText" => 'Close' // text to display in the "close" button
);
?>
<?php
$LOCALES = include("language-EN.php");
?>
...
<table class="calendar">
<thead>
<tr>
<td colspan="2"><a href="#">←</a></td>
<td colspan="3">
<div class="month">June</div><div class="year">2013</div>
</td>
<td colspan="2"><a href="#">⇆</a></td>
</tr>
<tr class="weekDays">
<td><?php echo $LOCALES['weekDayNames'][0] ?></td><td><?php echo $LOCALES['weekDayNames'][1] ?></td><td><?php echo $LOCALES['weekDayNames'][2] ?></td><td><?php echo $LOCALES['weekDayNames'][3] ?></td><td><?php echo $LOCALES['weekDayNames'][4] ?></td><td><?php echo $LOCALES['weekDayNames'][5] ?></td><td><?php echo $LOCALES['weekDayNames'][6] ?></td>
</tr>
...