小编Vin*_*nce的帖子

requestAnimationFrame垃圾回收

我正在使用Chrome Dev Tools v27中的时间轴分析以下代码的内存使用情况.

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv='content-type' content='text/html; charset=UTF-8' />
  <title>RAF</title>
</head>
  <body>
    <script type='text/javascript' charset='utf-8'>
      var frame = function() {
        window.webkitRequestAnimationFrame(frame);
      };
      window.webkitRequestAnimationFrame(frame);
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

注意这很简单.但最终我看到一个牙齿图案出现,表明垃圾收集器正在回收内存.

Chrome开发工具时间轴

raf是否默认创建垃圾对象?有什么方法可以避免这种情况吗?谢谢.

javascript optimization garbage-collection memory-leaks requestanimationframe

25
推荐指数
2
解决办法
3478
查看次数

canplaythrough 事件和 HTM5 音频:任何人都可以删除此事件吗?

我创建了一个新的音频元素,并且可以成功加载、播放、暂停、静音等。但是,我注意到某些浏览器(FF、Opera)在我执行 play() 时总是会触发 canplaythrough 事件。Chrome 也有这方面的问题。但 Safari 的行为符合预期...该事件仅在 readState 更改为 HAVE_ENOUGH_DATA 后触发一次。

我还注意到没有浏览器会让我删除这个事件。

不断触发 canplaythrough 很烦人,因为我不一定希望每次播放音频文件时都执行附加到 canplaythrough 事件的处理程序。当 canplaythrough 被多次触发时,我在 Chrome 上也遇到了一些奇怪的播放错误。

谁能解释一下 canplaythrough 发生了什么以及为什么它在最初被触发后无法被删除。

谢谢。

html javascript audio

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

从iPhone上的全屏网络应用程序启动移动Safari

我在一些变体中搜索了这个问题,只能在使用PhoneGap或jQuery mobile的环境中找到答案.但是,我既不使用...只是简单的旧HTML和JavaScript.

我正在尝试使用window.open()从全屏web应用程序启动移动Safari,而不是内联锚.无论我做什么,网址都会在网页应用中打开,而不是在Safari中.有没有人有什么建议?

谢谢.

javascript iphone iphone-standalone-web-app

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

Android浏览器触摸事件位置

在Safari上,您可以从event.pageX和event.pageY获取用户触摸屏幕的位置.但是,在我的Android浏览器上,event.pageX和event.pageY始终为0.有没有办法在Android上的浏览器中获取触摸事件的位置?

javascript android google-chrome

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