JavaScript
未读介绍:
将new操作单独封装
场景:
jQuery-$(‘div’')
React.createElement
vue异步组件
MagicMirror² 模块开发文档
原文地址
本文档介绍了开发MagicMirror²模块的方法
目录:
模块结构
文件
核心模块文件:modulename.js
可用的模块实例属性
可继承的模块方法
模块实例方法
Node Helper:node_helper.js
可用的模块实例属性
可继承的模块方法
模块实例方法
MagicMirror 辅助方法
模块选择
MagicMirror 日志记录
建议
随着魔镜项目取得了巨大的关注,可用的第三方模块也越来越多。对于新用户和开发者来说,为了去了解一个模块究竟做了什么、长什么样以及它的依赖,要花费很多时间在众多的项目仓库中浏览。不幸的是,这些信息仍难以获得,除非你先安装好它。因此我们强烈建议你在README文件中包含以下信息。
一张你开发的模块的高质量截图
用简短的一句话描述它做了什么
它调用了哪些API,包括web链接
API和请求是否需要密钥以及是否有用户限制
当然,这也能帮助你更好地认识和改善你的工作。
模块结构
所有的模块都在modules文件夹中加载。默认模块都放在modules/defaul ...
项目文件
设计技术
Websocket
python twisted
python 多进程
项目涉及
魔镜界面上的部分信息需要在某些情况下进行变更,若使用setTimeInterval不断地轮询后台,可行但很明显不是个好的方法。
很自然的就想到了websocket,因为后台已经使用了laravel,laravel的事件广播功能能够帮助实现这一功能。
关于websocket
以前客户端想知道服务端的处理进度,要不停地使用 Ajax 进行轮询,让浏览器隔个几秒就向服务器发一次请求,这对服务器压力较大。另外一种轮询就是采用 long poll 的方式,这就跟打电话差不多,没收到消息就一直不挂电话,也就是说,客户端发起连接后,如果没消息,就一直不返回 Response 给客户端,连接阶段一直是阻塞的。
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。和HTTP没什么关系,是基于TCP的一种独立实现。
WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
laravel ...
URL&&URI
uri URI—uniform resource identifier 通用资源标志符 web上的每种资源如html文档,图像,视频片段,程序等都是用一个uri来定位的。信息资源都拥有统一的且在网上唯一地址,就是URI,网络地址
url URL—uniform resource location统一资源定位符 是Internet上用来描述信息资源的字符串,URL是具体资源标识的方法。采用url可以用一种统一的方式来描述各种信息资源,包括文件,服务器的地址和目录等。
URL的内容由三个部分组成:(1)协议(服务方式) (2)存有该资源的IP地址 (3)主机资源的具体地址。如目录和文件名等。
URI三个方面内容:(1)访问资源的命名机制 (2)存放资源的主机名 (3)资源自身名称,由路径表示、着重强调于资源
URL省略文件名的情况
http://example.com/
index.html
http://example.com
index.html
http://exmple.com/aaa
aaa按理应该别理解成文件。 实际情况这样处理: ...
一面 55‘
自我介绍
项目介绍
跨域处理
浏览器缓存机制
手撕代码(3个)
从浏览器输入一个url之后发生的一些列事情
使用过的框架
VUE的特点
捕获冒泡事件
面试官介绍了prefetch
忘了
二面 50’
手动ES6转ES5
类的继承
构造函数
写了一个使用递归解决的函数
后台有一张地址不变的图片,前端缓存优化
DNS查找的过程
浏览器如何与IP对应的服务器建立TCP连接
HTTP是啥
浏览器缓存机制
与协商缓存304相关头的设置
列举一下http状态码
TCP连接为什么要三次握手,二次不可以吗
忘了
JavaScript
未读引言
在牛客网上刷到的题
12345678var foo={n:1}(function(foo){ console.log(foo.n) foo.n=3; var foo={n:2} console.log(foo.n)})(foo);console.log(foo.n )
js中的参数值传递和应用传递
在JavaScript红宝书中说到,“ECMAScript中所有函数的参数都是按值传递的”。理解这个概念先要从JS的堆内存和栈内存说起:栈内存为自动分配的内存空间,它由系统自动释放;堆内存则是动态分配的内存,大小不定也不会自动释放。
JS中的5种基本数据类型Undefined、Null、Boolean、Number 和 String,它们是直接按值存放在栈内存中,可以直接访问。引用类型的值是保存在堆内存中的对象。与其他语言不同,JavaScript不允许直接访问堆内存中的位置, 也就是说不能直接操作堆内存中的对象。 在操作对象时, 实际上是在操作对象的引用(也可理解为指针)而不是实际的对象。” 这个堆内 ...
JavaScript
未读一、 构造继承(经典继承)
基本思想:用call() 或apply() 将父类的构造函数引入子类函数
demo
123456789101112131415161718//父类function Person(name){ this.name=name; this.sum=function(){ alert(this.name) }}Person.prototype.age=10;//利用构造函数继承function Con(){ Person.call(this,'jer') this.age=12;}var con1=new Con();console.log(con1.name);//'jer'console.log(con1.age);//12console.log(con1 instanceof Person);//false
特点
只继承了父类构造函数的属性,没有继承分类原型的属性
每个新实例都有父类构造函数的副本
可 ...
HTTP
状态码
304 自上次请求后,请求的网页未修改过。服务器返回此相应,不会放回网页内容。需要使用强制刷新以便获得最新版的静态资源
401 请求要求身份验证。
HTTP header
通用头、请求头、响应头、实体头
通用首部字段
cache-control
no-cache 客户端发送的请求包含,表示客户端将不会接受缓存过的相应,缓存服务器必须把客户端的请求转发给服务器 如果服务端的相应包含,表示????????
connect
控制不再转发给代理的首部字段
管理持久连接 HTTP/1.1 协议默认开启
Data
pragma
历史遗留字段,形式唯一 no-cache
只在客户端发送的请求中,要求中间的服务器不返回缓存的资源
transfer-encoding
chunked 分块编码
upgrade
via 追踪传输路径
存储
Cookie 的大小不超过4KB,且每次请求都会发送回服务器;
LocalStorage 在 2.5MB 到 10MB 之间(各家浏览器不同
项目涉及:Arduino与蓝牙模块通信
通常我们将Arduino UNO上自带的串口称为硬件串口,而使用SoftwareSerial类库模拟成的串口,称为软件模拟串口(简称软串口)。
硬件串口:0,1引脚,分别为RX,TX
软串口接收引脚波特率建议不要超过57600
SoftwareSerial类成员函数
该类库不在Arduino核心类库中,需要进行声明
SoftwareSeial()
作用:通过它指定软串口的RX,TX引脚
语法:SoftwareSerial mySerial= SoftwareSerial(rxPin, txPin)
SoftwareSerial mySerial(rxPin, txPin)
参数:myserial:用户自定义软件串口对象
rxPin:软串口接收引脚
txPin:软串口发送引脚
listen()
作用:开启软串口监听状态
Arduino在同一时间仅能监听一个软串口
语法:myserial.listen()
isListening()
作用:监测软串口是否正在监听状态。
语法:mySerial.isListening()
参数:
myS ...