从零开始写一个 Web 视频播放器

前言 最近几周接连做完了酷家乐大学的直播页面和视频播放页改版,过程中有一些探讨与思考值得记录一下,本文会介绍实现一个 Web 视频播放器的过程。 前方提示1:本文不会着重在 Web 视频播放器的实现细节上。 前方提示2:本文要讲的 Web 视频播放器,不涉及底层实现,或者是关于视频格式、码率等其他知识,仅仅是一个纯 HTML5 的 Web 端视频组件。 前方提示3:初次撰文,可能有些字句表达不当,欢迎指出。 »

梯田 梯田 浏览量:0

一套完整的 Electron 应用自动更新方案(上) —— 从需求到设计

在发布一个桌面应用之前,必须要考虑的一个问题是:怎么更新(迭代)?一个应用不可能没有更新,除非没人用的或没人维护,从人肉更新到自动更新,再到复杂的更新方案,这里有很多产品和技术的设计... 这是 Electron 系列的第三篇文章,也是 Electron 应用自动更新方案的上篇「从需求到设计」,下篇会讲「从设计到实现」。 为什么要讲从需求到设计?这不是产品的活么? 不要那么仔细地去区分产品、开发,一些技术驱动的功能上,开发需要承担产品的工作,自动更新就是这样的一个功能。而且, »

单例模式【javascript设计模式】

学而时习之,不亦说乎?——孔丘《论语•学而》 单例模式的核心在于: 确保一个实例,并提供全局访问。 首先,单例模式要求只有一个实例,其次这个实例在全局都可以访问到。比如我在实习的时候写的这个页面: 点击邮件获取最新安装包的时候会弹出这个框框,很显然,这个框框只需要被创建一次即可,所以我们可以写下如下的代码: <button class="J-popup">btn</button& »

虫二 虫二 浏览量:0

异步的JavaScript

引子 前几天学校的交流群里面讨论JavaScript回调函数,有个同学提出了一个观点:回调函数就是异步执行的! 看到这个观点,我想了想我使用回调函数的场景,还真都是异步的,一时竟觉得他说得很有道理。 当然,这句话本身,当然是错的,在JavaScript中函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,基于这个基本事实,就可以写出高阶函数。 接受或者返回一个函数的函数称为高阶函数 常用的内置高阶函数例如Array对象的forEach,map等,函数组合,函数柯里化,回调模式都属于高阶函数。实际上,JavaScript是有能力进行函数式编程的(FED关于函数式编程的文章) »

钟离 钟离 浏览量:0

构建可扩展的 React Redux 应用第一部分 - React 组件设计

由于 React 和 Redux 本身的灵活性,要摸索出一套最佳实践需要很多经验积累。当功能达到几十上百个时,项目要如何组织?如何降低代码耦合度?要怎样才能在业务需求变动时较少地改动?如何让代码可测试?如何保持性能? 由此也产生了 Dva 等业界流行的一揽子解决方案。但到目前为止,社区里还没有对中大型应用如何组织和维护有完整的总结。在这样的条件下,我们一直在思考和实践如何构建 长期可维护、可扩展 的中大型应用。 我们的项目持续迭代开发一年多,同时支持移动端和 PC 端, »

Yiliang 浏览量:0