小编Joh*_*ear的帖子

无法重现TypeError:'undefined'不是对象

Google Analytics(分析)显示,约有12%的用户受到以下Javascript错误的影响:

TypeError: 'undefined' is not an object

90%的浏览器是Safari 7534.48.3,10%是Mozilla兼容代理.75%的错误来自iPhone,23%来自iPad.1%来自Macintosh,另外2%来自iPod等.所有设备都没有运行Linux或Windows.

我已尝试在iPhone和iPad上的safari中启用调试模式,但无法重现该错误.

以下是Google Analytics声称显示错误的网页链接.如果有人能够在这里始终如一地重现错误,我将非常高兴,因为只需一个行号就足以让我开始调试.

任何人都可以想到我可以尝试调试此方法吗?谢谢大家

对于我们中间的好奇我正在使用此代码向GA发送错误 - 警告:可能的自我推销.

更新: TypeError:'undefined'不是对象(评估'safari.self.tab.canLoad')

当点击"改变国家......"时,主要在iphone上进行管理以便一次点击它.

更新:通过确保元素在dom中可用来解决此问题.事实证明,成功时的ajax调用试图写入一个不可用的元素.

我保留了无法重现TypeError的可靠记录:'undefined'不是这里的对象

javascript iphone safari jquery

12
推荐指数
1
解决办法
1万
查看次数

如何使 SocketIO 的性能更高?

我们在 Etherpad 中非常广泛地使用了 SocketIO(从很早开始),我们非常感谢团队为提供如此有用的东西所做的所有努力:)

Etherpad 是一个 nodejs 项目。

我的 SocketIO 问题可能是由于我配置错误或理解错误,但经过大量测试工具生成、内存设置调整等。我们仍然获得令人沮丧的每秒最大消息数,达到 10k 大关。

Etherpad最新模拟负载测试

在线阅读看起来切换到 ws 的性能会更好,但我看不出在我们的场景中情况如何,我们的瓶颈不是协商(最终是 websockets)而是服务器每秒处理的消息。

我不愿意尝试其他软件包,所以我想我会来这里寻求一些见解或尝试看看我们是否可以通过很多方式提高性能......通常的节点技巧(访问更多硬件[ ram/cpu]) 有点帮助,但仍然感觉我们获得的收益非常小,而不是您在其他模块基准测试中看到的巨大数字。

这个问题的一个理想结果是让某人查看 Etherpad 代码并告诉我为什么我是个白痴,希望我们可以让 Etherpad 进入每秒 10 万次更改的竞争中,但我也可能对其他模块感到迷茫因此,如果有人有与 ws 之类的基准相矛盾的基准,那么我全神贯注。

我觉得我应该补充一点,我们进行了测试,看看是否是内部 Etherpad 逻辑造成的,但实际上不是,最终导致操作转换算法出现瓶颈的是通信层,我们有 99.95% 的把握。 .

在这个问题上扔更多的硬件不是解决方案,也不是任何反向代理/传递问题的方法。

performance benchmarking etherpad socket.io ws

7
推荐指数
1
解决办法
365
查看次数

如何使我的元素淡出计数值越高?

我的HTML看起来像这样..

<div class=chocolateSandwich>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
</div>
Run Code Online (Sandbox Code Playgroud)

所以我希望第5项是最不可见的IE不透明度.1和项目1说不透明度1或.9 ..我显然可以根据它的每个硬编码的子编号的值来做,但我觉得CSS有一种方法可以说给定对象的计数然后应用较低的不透明度值.

一个不优雅的解决方案是拥有css规则..

.chocolateSandwich:nth-child(4) { opacity:.1 }
.chocolateSandwich:nth-child(3) { opacity:.3 }
.chocolateSandwich:nth-child(2) { opacity:.5 }
.chocolateSandwich:nth-child(1) { opacity:.7 }
.chocolateSandwich:nth-child(0) { opacity:.9 }
Run Code Online (Sandbox Code Playgroud)

css

5
推荐指数
1
解决办法
77
查看次数

如何在Express 4中正确设置链接预取标头?

根据MDN,正确的方法是发送标题:

Link: </images/big.jpeg>; rel=prefetch
Run Code Online (Sandbox Code Playgroud)

所以我明确的语法是:

res.header('Link', '</images/big.jpeg>; rel=prefetch');
Run Code Online (Sandbox Code Playgroud)

我看到它在我的浏览器中登陆:

Link:</images/big.jpeg>; rel=prefetch
Run Code Online (Sandbox Code Playgroud)

但Chrome从不试图下载图像..元和链接方法工作正常..

我设置标头错误或浏览器无法处理标头值?

UDPATE:好的,看起来我做得对,但Linux/Ubuntu上的Chrome 43和Chromium 43还没有支持.这在Firefox 38中运行良好..

可能是Chromium没有在网络标签中显示预取吗?

更新2:所以看起来Chrome/Chromium正在隐藏"网络"标签中的文件传输.如果有人能证实这一点,我会很感激..

google-chrome chromium node.js etherpad express

1
推荐指数
1
解决办法
1476
查看次数