SukkaW / DisqusJS

:speech_balloon: Render Disqus comments in Mainland China using Disqus API
https://disqusjs.skk.moe
MIT License
646 stars 56 forks source link

无代理状态,首次访问(或清掉 disqusjs_mode)不会加载评论 #2

Closed DIYgod closed 5 years ago

DIYgod commented 5 years ago

预期加载基础模式,实际什么都没有加载出来

demo 稳定复现

SukkaW commented 5 years ago

奇怪。。在我这里,不挂代理、清除 localStorage 后 demo 都是正常的。。。有没有 console 输出的内容?

SukkaW commented 5 years ago

DIYgod 有没有试过自用建的 DISQUS API 反代测试一下?

DIYgod commented 5 years ago

具体表现是这样的

console 没什么异常

只有第一次会不显示,刷新一下就好了

我这里稳定复现...用无痕模式打开试试?

SukkaW commented 5 years ago

ERR_TUNNEL_CONNECTION_FAILED 应该是 DIYgod 的代理出现了问题吧。。 我这里使用 Dev Tools 的 Request Blocking 阻止 disqus.com/favicon.ico 的请求时仍然会切换到「评论基础模式」。。。 我试试 ERR_TUNNEL_CONNECTION_FAILED 能不能触发 onerror 事件

DIYgod commented 5 years ago

不是,ERR_TUNNEL_CONNECTION_FAILED 是 disqus.com/favicon.ico 的请求

我这里无代理状态只要删掉 disqusjs_mode 第一次访问就会空白...迷

SukkaW commented 5 years ago

奇怪。。DIYgod 试试在无痕模式下、先打开 Dev Tools 里的 Request Blocking、Block 掉 https://disqus.com/favicon.ico URL,然后再打开 https://suka.js.org/DisqusJS 试试?

DIYgod commented 5 years ago

Block 掉是好的,惊了

SukkaW commented 5 years ago

ERR_TUNNEL_CONNECTION_FAILED 我无法模拟。。但是在 ERR_PROXY_CONNECTION_FAILED 情况下应该会正常触发 onerror 事件。

DisqusJS 检测访客的 Disqus 可用性是通过检测 disqus.com/favicon.ico 和 ${disqusjs.config.shortname}.disqus.com/favicon.ico 是否能正常加载,如果有一个加载出错或超时(2s)就判定 Disqus 不可用。

SukkaW commented 5 years ago

即使 ERR_TUNNEL_CONNECTION_FAILED 不能触发 onerror 事件,DisqusJS 做了 2s 超时的 fallback 的,应该仍然会切换到「评论基础模式」的。。

SukkaW commented 5 years ago

@DIYgod DIYgod 检查一下,不 Block 掉 URL,然后当出现一片空白的时候,localStorage 里 disqusjs_mode 的值是不是 disqus

DIYgod commented 5 years ago

是 dsqjs

我用的 surge,出问题的是设置 surge 不走代理,但是我把 surge 都关掉就是可以正常显示的

SukkaW commented 5 years ago

呜,那么窝知道问题出在哪里惹。。DisqusJS 对超时的处理 Bug。。。