Published on2017年12月13日前端js下载文件方案探索JavascriptFile-Download我们知道,下载文件是一个非常常见的需求,但通常只能通过访问某个文件的 url 来实现下载功能,但是这种用户体验非常不好。幸好,HTML 5 里面为 a 标签添加了一个 [download](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a) 的属性,来方便我们下载文件。但是最近一个需求,迫使我不得不寻求新的下载方案,于是便有了更新后的此文。
Published on2017年9月19日简单拼音搜索引擎Search-EngineJavascript本文主要是通过分析[pinyin-engine](https://github.com/aui/pinyin-engine)源码,一步步基于Javascript实现一个拼音搜索引擎,并修复了大写英文字母搜索BUG和缓存上一次搜索结果BUG。全部源码(包括注释)都发布在Github上:[demo-pinyin-engine](https://github.com/jiandansousuo/demo-pinyin-engine)
Published on2017年8月7日深入理解和使用 Javascript 中的 setTimeout(fn,0)Javascript首先浏览器是多线程的,各个线程在内核控制下同步执行,一个浏览器至少实现三个常驻线程:Javascript引擎线程、界面渲染线程、浏览器事件触发线程。
Published on2017年8月2日基于Web Audio API的音乐可视化JavascriptHTML5Web Audio API可以在一个音频上下文中对音频进行相关处理,它允许音频基于模块化的流程处理。基本音频操作都是基于音频节点来进行的,这些节点被连接在一起,组成一个音频的路由图。它支持带有不同类型的频道层的多个音源,甚至只需要一个音频上下文。它基于模块化的设计,使得你可以动态的创建复杂的音频功能。
Published on2017年6月29日异步编程之 PromiseJavascriptJavascript语言的执行环境是“单线程”的,也就是一次只能完成一个任务。如果有多个任务,就必须按照队列顺序来执行。这种模式的好处是 _实现起来简单,执行环境相对单纯_,坏处是 _只要有一个任务耗时很长,就会阻塞整个进程_ ,通常会造成浏览器无响应(假死)。Javascript语言本身并不慢,慢的是读写外部数据,最常见的是等待一个Ajax请求返回结果,等待的时候,如果服务器无响应,或者网络慢,就会导致脚本长时间等待停滞。