最近在面试中碰到一道题:使用两种方法将有联系的一维数组转成树形数组。一维数组格式如下: // 一维数组 var arr = [ { id: 0, name: "总公司" }, { id: 1, name: "分公司1" }, { id: 2, name: "分公司2" }, { id: 11, name: "分公司1-1" }, { id: 12, name: "分公司1...
JS 数据双向绑定
最近在面试中被问到了数据的双向绑定是如何实现的。当时只记得学习 Vue.js 时,有一个 v-model 指令能够实现数据双向绑定,实现的原理涉及到了事件监听。所以没有给出一个好的答案。 1. Vue.js 中的数据双向绑定 1.1 v-model 指令 Vue 官网中是这样描述 v-model 的: 你可以用 v-model 指令在表单 <input>、<t...
Node.js 处理 HTTP 范围请求
最近写了一个不使用外部框架的情况下,使用 Node.js 开启一个托管文件的服务器,github 地址:serving-static-files-without-frameworks。 但是,使用 Iphone 访问 mp4 文件时,发现视频无法播放。 1. 范围请求 在用 Iphone 访问 mp4 文件时,请求头中有表示范围请求的 Range 字段,bytes= 后的区间告知服务器...
手动实现 JSONP
1. Ajax Ajax 技术能够像服务器请求额外的数据而无须卸载页面,会带来更好的用户体验。 Ajax 的核心是 XMLHttpRequest 对象(简称 XHR)。IE7+、Firefox、Opera、Chrome 和 Safari 都支持原生的 XHR 对象。 但是通过 XHR 实现 Ajax 通信的一个主要限制,来源于跨域安全策略。默认情况下,XHR 对象只能访问与包含它的页面...