日期:2014-05-16 浏览次数:20529 次
当前的富客户端可以包含两部分:分别为JSP页面和通过富客户端js组件(如extjs)渲染的组件化窗口页。针对这两部分分别做如下处理:
对于JSP页面的部分采用JSTL标准库的fmt标签,如通过:
<fmt:message key="page.login.title"/>这样的形式进行展现,其中message对应的文本在服务端配置,并在web.xml中配置资源文件的位置,也可以采用spring标签,Structs标签等多种机制。不过为了以后的程序修改兼容性,建议采用JSTL进行JSP页面的国际化。
对于JavaScript,考虑到为提高效率,因为是静态资源,可以很方便的在一定周期内要在客户端浏览器进行缓存,不同的浏览器会有不同的缓存机理,在IE中,js文件通过定义一定的过期期限,C:"Documents and Settings"用户名"Local Settings"Temporary Internet Files下进行缓存,Firefox是C:"Documents and Settings"用户名"Local Settings"Application Data"Mozilla"Firefox"Profiles"XXXXXXX.default"Cache,为了缓存而不是每次下载为了实现富客户端而集成的很大的js,不能用动态的网页来生成(即把JavaScript包装为JSP页面,最简单的,把js扩展名改成jsp并利用jsp的机制做国际化)。因此,需要对JavaScript中国际化的内容通过变量单独加载,举例如下:
var Message = function(){
???????? this.title =’中文标题’;
???????? ……
};
var msg = new Message();
/********************************
或:
var msg = {
???????? title : ‘中文标题’;
};
*********************************/
new Ext.Window({??
???? title : msg.title,??????????
???? width : 265,??????????????
???? height : 140
});
其中msg对象的定义可以通过在另一个JavaScript文件中引用的本地化文件所定义,也可以通过AJAX返回JSON对象的形式来获取或者动态地进行服务端生成。
两种方法的优缺点定义如下:
方法 |
缺点 |
优点 |
前台主动定义 |
会产生大量零碎的文件(M个JavaScript文件需要对象N个语言的资源文件,总数M×N,如果把这些资源文件都放在一个JavaScript文件中定义,则对客户端来说,要下载过多不必要的资源) |
资源定义非常灵活,可以保证只定义自己需要的资源,并且可以做到随时更改其内容 |
后台自动获取 |
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|