分析dropbox web界面的时候看到了一些
<script type="text/template"></script>
之类的标签里面有很多<%html= xx %> <%attr= yy %>
之类的tag。看得一头雾水。
google一下原来是一种称作javascript template的技术。大概的原理是浏览器因为不认识 <script type="text/template"></script> 这种标签,会忽略其内容。所以这个script里面可以加一些模板内容,然后通过调用模板函数去改变里面的内容(把<%attr=%>之类的替换成需要的内容),然后生成合法的html内容,添加到DOM树中。
dropbox的多语言版本实现也是在这个基础之上:
里面所有显示的文字根据不同的语言显示会不同的地方,默认是英文的值,在加载完之后,执行一个update_i18n_messages函数,替换所有该替换的地方。对于动态添加的内容(取后面数据的),显示文字有不同的地方,就是用script template,在服务器返回json格式的数据之后,用模板函数填充内容,添加到DOM树中。
可是自己实现呢!!!???
缺的不只是对代码的理解不够,对语言的使用不够,最缺的是对架构的理解,实现!