FF&Chrome中的AJAX

在国际化测试过程中,不知你是否遇到过这样的情况?用FF访问某一页面时候,发现该页面已被完美的本地化;而换到了Chrome之后,问题出现了,整个页面依然充斥着英文。(语言设置没有问题!)

  

有人说,那就清理一下cache呗!非常好,说做咱就做,不过……清理完之后发现Chrome页面没任何变化,让大家失望了,这可如何是好?

 

反思这两个测试用例,除了浏览器的差异,操作步骤没有任何不同,那么该问题应该可以进一步转化为——FF跟Chrome有何区别?抢答开始。

甲:二者内核不一样啊,FF是Gecko,Chrome 用 Webkit!

乙:FF启动后进程只有firefox.exe+ plugin-cuntainer.exe两个,而Chrome每个页面都有一个进程,每个插件、每个扩展又各一个进程!

丙:FF更开放,Chrome浏览速度更快!

 

OK 大家说的都对,但这跟国际化有何关系呢?

甲:……

乙:……

丙:都看我干吗?o(╯□╰)o

 

其实问题应该定位在二者JavaScriptEngine上,尝试着总结如下吧,不足之处,还请各位指正。

1.      获取鼠标的坐标时,FF不支持event.x,代之以event.screenX

2.      FF不能在JS中直接使用event对象,必须将event传递给JS方法再使用

3.      FF使用document.documentElement.scrollTop能够获取滚动的高度,但Chrome代之以document.body.scrollTop

4.      动态添加文本innerText对FF无效,应该代之以innerHTML

5.      FF上获取不到formname,只能用document.formname来获取表单对象

6.      Chrome只支持AJAX异步读取数据,同步被抛弃

 

根据多年游戏经验,最后出场的一般都是大boss!走读示意代码,果然有嫌犯async: false 八成就是他,果断删除,转而用异步方式读取翻译文件,噔噔噔噔~~~问题解决!

/**
 * Load language JSONfile according to browser's locale setting using
 * AJAX synchronouscall.
 */
url = '../locale/' + this.locale + '.json';
$.ajax({
   type:"GET",
   url: url,
   dataType:"json",
   async: false,
   cache: false,
   success:function(data) {
      if (!!data) {
        self.translatedTable = data;
      } else {
        JSLogger.error('Invalid translation data: ' + url);
      }
   },
   error:function(jqXHR, textStatus, errorThrown) {
     JSLogger.error('Failed to load translation data: ' + url +
         ', status: '+ textStatus + ', errorThrown: ' + errorThrown);
   }
}); 

尘埃落定,但从这个故事中,我们又可以学到什么呢?(尤其是国际化测试人员),个人认为至少有两点吧。

1.      涉及资源文件读取的部分,询问清是否采用了AJAX技术,同步还是异步,从而再制定matrix,而不仅仅是凭经验

2.      多探索各个平台,各个浏览器对国际化的影响,不要只为了遍历制定的matrix而遍历

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值