2

我有一个奇怪的情况,我的 Javascript 在 Android 2.x 设备上以不可预知的方式失败。

一些描述是:

  • Javascript 应用程序的某些部分可以工作,而某些部分则不能。这些“部分”被分解为具有单独构造函数的模块。

  • Javascript 应用程序在一台服务器上失败,而不是在我们自己的网络中的另一台服务器上失败。

  • Javascript 应用程序有时会在页面上的多个脚本文件中引发 ILLEGAL TOKEN 错误,但该应用程序在任何桌面客户端上都不会引发错误,并且被认为在语法上是正确的。

为了解决这个问题,我在地址栏中输入 about:debug 并刷新。繁荣。突然间,整个 Javascript 应用程序都可以工作了,包括每个模块和每个服务器上。

此外,现在Android“记住”了这一点,并且缺陷在90%的时间内都消失了,但偶尔会随机出现。

这是一个 ASP.NET Episerver 堆栈,我们使用 Cassette 连接和缩小大约 12-20 个脚本,其中大约 4 个“最终”脚本块被渲染到页面。

有没有人遇到过这样的事情?我唯一的策略是将脚本分解成几个额外的 HTTP 请求以减慢解析器的速度……但我真的不知道这里发生了什么。

谢谢!

4

1 回答 1

0

经过大量测试,我们似乎已经修复了这个错误。这是 Android 2.x 下载带有以下标头的 Javascript 文件的问题:

Content-Type: deflate

我们将其更改为:

Content-Type: gzip

不过很好奇,为什么 Android 2.x 会出现 deflate 配置和 Javascript 文件的问题。

于 2012-07-25T18:29:44.517 回答