Discourse 在旧版 iPad 上无法渲染完整页面

我收到论坛两位用户的报告,称网站无法使用,在 iPad 上除了主题标题外,其余内容均无法渲染(其中一台是 iPad mini 2;另一台的型号年份尚不确定)。

我请其中一位用户在安全模式下测试,问题依然存在。

据称该问题是在最近几天出现的(我最近刚更新了 Discourse)。是否引入了浏览器兼容性问题?

https://se23.life/t/cant-open-topics-suddenly/13677?u=chrisbeach

日志中可能相关的错误如下:

### 消息  

TypeError: Object.values 不是一个函数。(在 'Object.values(k)' 中,'Object.values' 未定义)Url: https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js 行号: 1 列号: 2302964 窗口位置: https://se23.life/t/hat-stolen-from-forest-hill-christmas-tree-now-replaced/13615/16  

### 回溯  

html@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:2302964 value@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:2380769 s@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:142806 exports@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:142956 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136443 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:136753 https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:138354 exports@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:138399 c@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139468 o@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139332 exports@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:138842 c@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139468 o@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139332 t@https://se23.life/assets/vendor-4681e47c140b5a5bea2bfb1fec89365858288a8ea0c21979c0167ad9b570ee3d.js:1:139608 rerenderWidget@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:1070961 invoke@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:483463 flush@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:482460 flush@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:484479 _end@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:489914 end@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:486449 _run@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:490450 h@[native code] success@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2.js:1:228913 n@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:27779 fireWith@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:28543 l@https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:78782 https://se23.life/assets/ember_jquery-c2cca4a19fd4c70eabc95b010a6d7643955ec2a2251aeb1d70f625773eebea21.js:1:81099  

### 环境  

hostname gbyk1-app  
process_id 222  
application_version e8beccdaa4eb36fd292de9cd77d59a0e0389c92f  
HTTP_HOST se23.life  
REQUEST_URI /logs/report_js_error  
REQUEST_METHOD POST  
HTTP_USER_AGENT Mozilla/5.0 (iPad; CPU OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1  
HTTP_ACCEPT */*  
HTTP_REFERER https://se23.life/t/hat-stolen-from-forest-hill-christmas-tree-now-replaced/13615/16  
HTTP_X_FORWARDED_FOR [已隐藏]  
HTTP_X_REAL_IP [已隐藏]  
params message TypeError: Object.values 不是一个函数。(在 'Object.values(k)' 中,'Object.values' 未定义)  
--- --- --- ---  
--- ---  
url https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78dddeadb2  
line 1  
column 2302964  
window_location https://se23.life/t/hat-stolen-from-forest-hill-christmas-tree-now-replaced/13615/16  
stacktrace html@https://se23.life/assets/application-40c596cdf7e29282f09e31f3627440b02ba54ef8bec1f65c72732b78ddd  
2 个赞

它们在安全模式下能工作吗?

1 个赞

iPad Mini 2 发布于 2013 年,因此已经相当老旧。其生命周期结束于 2017 年。

4 个赞

不,它们在安全模式下无效。

1 个赞

我的 mini 4 和 5 运行正常:我怀疑它们的合作伙伴该在圣诞节大方一点了 :wink:

1 个赞

我认为这是因为 entries polyfill 已移至 IE 插件,cc @j.jaffeux

3 个赞

是的,Object.entries 需要 10.3 版本

据我所知,我们支持 Safari 10+ 和 iOS 10+

4 个赞

所以有一个插件可以安装,让这个问题消失吗?

1 个赞

不,该插件现在默认随 Discourse 一起安装。我想说的是,这个 polyfill 早在几个月前就被添加以支持 IE11。

几周前我们创建此插件时,将原本为 IE11 添加到核心中的所有功能都移到了这个插件中。

只有来自 IE11 的请求才会加载此插件中的文件,这就是为什么 iOS 9 不再起作用的原因。

iOS 9 的使用情况现在几乎不再被追踪,其占比可能远低于 1%(而 IE11 为 1%)。

尽管如此,我们可以采取两个简单的措施:

  • 在核心中再保留该文件一年
  • 同时为 iOS 10 及以下版本加载 IE11 polyfill,这是一个不错的解决方案,因为现在我们可以条件性地加载它,而不会影响其他用户。

由您决定,@codinghorror。我的感觉是我们应该停止支持它,但如果您认为目前保留它更合理,我也完全同意。

9 个赞

事实就是如此:极其老旧且过时的 iOS 设备无法得到无限期的支持。

5 个赞