小编Ivo*_*Ivo的帖子

看着DOM的变化,优雅的方式

我需要注意特定DOM元素的任何子元素的属性更改.到目前为止,我一直在使用突变事件.

问题是 - 他们是错误的:例如在Chromium下,DOMAttrModified没有被解雇但是DOMSubtreeModified.问题很容易解决:因为根据规范,DOMSubtreeModified如果触发了任何其他事件就被触发,所以我只是听了DOMSubtreeModified.

无论如何,在最近的版本中,如果属性被修改,Chromium会停止触发任何内容.

然而,新的Mutation Observer API可以完美运行.

到目前为止,我只需要在任何特定元素的子树发生变化时触发回调 - 只是因为没有别的东西可以改变 - 所以我通过使用变异事件和变异观察者(如果可用)来解决我的问题一段代码.

但是,现在我需要对事件进行更强大的过滤(例如,在新节点上,在删除的节点上) - 所以是否有一个库,可能是一个jQuery插件,可以让我优雅地使用这两个 API - MutationObserver如果可用和突变事件作为后备,能够过滤特定事件类型(例如添加元素,更改属性).

例如

$("#test").watch({onNewElement: 1}, function(newElement){})
$("#test").watch({onNewAttribute: 1}, function(modifiedElement) {})
Run Code Online (Sandbox Code Playgroud)

或者没有jQuery

watchChanges("#test", {onNewElement: 1}, function(newElement){})
watchChanges("#test", {onNewAttribute: 1}, function(modifiedElement){})
Run Code Online (Sandbox Code Playgroud)

html jquery html5 dom

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

通过MP4直播

我正在从事在线电视服务.其中一个目标是在没有任何其他浏览器插件的情况下播放视频(Flash除外).

我决定使用MP4,因为大多数HTML5浏览器和Flash支持它(用于后备).视频由FFMpeg在服务器上从ASF转码.

但是,我发现MP4不能实时流式传输,因为它有一个moov原子用于必须指定长度的元数据.FFMpeg无法直接将mp4流式传输到stdout,因为它将moov放在文件的末尾.(MP4的实时转码和流式传输在Android中有效,但在Flash Player中无法使用NetStream.Play.FileStructureInvalid错误)

当然,MPEG-TS存在,但HTML5不支持<video>.

我想到的是一种将流实时转码为MP4的方法,并且在每个新的HTTP请求中,首先发送一个指定视频长度非常长的数字的moov,然后开始发送其余的MP4文件.

是否可以使用MP4进行流式传输?

经过一些研究和av501的回答,我知道框架的尺寸必须是已知的,以便它可以工作.

mp4文件可以分割成更小的部分,以便可以流式传输吗?

当然,切换到另一个容器/格式是一个选项,但唯一兼容Flash和HTML5的格式是mp4/h264,所以如果我必须支持两者,我必须转码两次.

streaming mp4 mpeg h.264 mpeg-4

34
推荐指数
2
解决办法
4万
查看次数

选择一个班级,其余3个; nth-child和nth-of-type无用

我有一个带有多个子元素的DOM元素(#installations),其中只有一个有一个类.selected.我需要选择这个类和其余的前三个(:not(.selected))并显示它们 - 目标是只显示4个元素,无论哪个元素具有类.selected.

问题是,在表达式中:

#installations > *:not(.selected):nth-of-type(-n+3), .selected
Run Code Online (Sandbox Code Playgroud)

:nth-​​of-type()忽略:not()选择器,只选择#installation的前3个子节点.例如,如果我有这个HTML:

<div id="installations">
    <div id="one"/>
    <div id="two"/>
    <div id="three" class="selected"/>
    <div id="four"/>
    <div id="five"/>
</div>
Run Code Online (Sandbox Code Playgroud)

我只会选择一个,两个,三个而不是前四个.逻辑含义是:nth-​​of-type()只有(一,二,四,五)可供选择,因为:not()已经排除了所选的一个,因此选择(一,二,四),然后选择器的另一部分, .selected将添加所选元素.

如果.selected不在前四个元素中,让我们说它是第六个,我们将选择前三个+第六个元素.

澄清一下:选择.selected加上3个相邻元素也没关系.但是,我这也很困难.选中的是最后3个(如果我们选择接下来的3个相邻元素)

html css css-selectors css3

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

WebSockets:有助于减少开销?

我正在构建一个动态搜索(每次击键更新):我目前的方案是,在每次击键时,向服务器发送一个新的AJAX请求并以JSON格式返回数据.

我考虑为每个搜索"会话"打开一个WebSocket,以节省一些开销.我知道这会节省时间,但问题是,考虑到这些参数,它是否真的值得:80ms平均ping时间166ms:每次击键之间的时间,假设用户类型相对较快最差情况下1MB/s的传输速率,每次击键时必须收到的每个数据包不超过1KB.该应用程序还需要30-40毫秒的时间来将搜索结果焊接到DOM.

我发现这个:HTTP与Websockets相关的开销,但它是一个不同的用例.

除了纯HTTP开销之外,websockets还会减少什么吗?HTTP开销是多少(假设没有cookie和最小标头)?

我猜HTTP请求在每个请求上打开一个新的网络套接字,而WebSocket允许我们一直只使用一个.如果我的理解是正确的,那么打开新网络套接字的实际开销是多少?

javascript http overhead websocket node.js

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

在 node.js 中使用 python 模块

是否可以创建一种胶水,使 python 模块(更具体地说,库绑定)可以在 node.js 中使用?一些数据结构可以直接映射到 V8 对象——例如数组、字典。

更重要的是 - 这是否是一种比手动或通过 FFI 创建绑定更优雅的方式。简而言之,值得吗?

python binding node.js

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

使用Android应用程序嵌入较新版本的WebKit

我正在开发一个使用Web技术和CSS过渡的Android应用程序(对于应用程序的功能非常重要,因为它们负责滚动和滑动页面)非常缓慢.根据互联网上发现的信息,除非进行三维转换,否则CSS转换不是硬件加速.我发现很多文章说我应该把"-webkit-transform:translateZ(0);" 我的动画元素.

但是,旧版Android(低于3.0)中的Webkit不支持3D转换.

我可以在我的应用程序中嵌入更新版本的WebKit吗?

css html5 android webkit

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

在特定网站上嵌入自定义样式表/ JS

是否有Google Chrome/Chromium的扩展程序,允许我在打开特定网站时嵌入自定义样式表或执行自定义JS代码?

如果没有,是否可以开发一个?

当然,书签可能会执行相同的工作,但必须在每个条目上单击它.

google-chrome chromium web

3
推荐指数
2
解决办法
2198
查看次数

AngularJS服务rootscope

我有一个在AngularJS中定义的服务,app.factory("serviceName", function($rootScope) { .. }) 如果我这样做$rootScope.$apply(),是否会重新评估应用程序中所有控制器的作用域或仅使用此服务的控制器的作用域?

javascript angularjs

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