最近有人让我讲解反向代理,简单解释一下
- 正向代理
客户端把访问请求传给代理nginx
,让nginx
代为执行访问请求,然后把请求结果还给客户端,这个过程中,nginx根据来源请求,再解析其中的域名,与远端服务器交互
正向代理的作用:解决客户端不能直接访问远端服务器,而代理端所在机器可以访问远端服务器的情况
阅读全文 »»最近有人让我讲解反向代理,简单解释一下
客户端把访问请求传给代理nginx
,让nginx
代为执行访问请求,然后把请求结果还给客户端,这个过程中,nginx根据来源请求,再解析其中的域名,与远端服务器交互
正向代理的作用:解决客户端不能直接访问远端服务器,而代理端所在机器可以访问远端服务器的情况
阅读全文 »»自然界的颜色有无数种,我们用数字来表示有限的颜色种类,根据三基色原理,人眼对红、绿、蓝最为敏感,大多数的颜色可以通过红、绿、蓝三色按照不同的比例合成产生,比如:红色+绿色=黄色
、绿色+蓝色=青色
、红色+青色=白色(二次叠加)
用 R、G、B
三个字节表示颜色,可以表示 256*256*256 = 16777216
种颜色,这种颜色我们称之为真彩色
,是目前电脑能表示的最高色彩,也是普遍认为人眼对颜色的最大分辨能力。
我们平常所说的 RGBA
里的 A
(alpha)指的是透明度,透明度不是颜色的一部分,而是用于图层/颜色混合时的叠加度量值
由于早期电脑内存宝贵,一张图片如果使用真彩色存储比较浪费,所以早期电脑程序使用了减配的字节来表示 rgb,比如:
用一个字节表示:RGB332(3+3+2=8 位色):(2^3)(2^3)(2^2)=256(256 Color) 俗称 256 色
用两个字节表示:RGB555(5+5+5=15 位色):(2^5)(2^5)(2^5)=32768(32768/1024=32, 32K Color) 有 1 位未使用
另外一种用两个字节表示:RGB565(5+6+5=16 位色):(2^5)(2^6)(2^5)=65536(65536/1024=32, 64K Color) 由于人眼对绿色最敏感,所有绿色分量占比会多一些
我们常用的RGB
和RGBA
格式属于RGB888
,就是 RGB 各个分量分别占用 8 位,除了 RGB,在印刷工业领域还会使用HSL
表示法,HSL 分别为 hue
(色相)、saturation
(饱和度)、lightness
(亮度)
阅读全文 »»他们都是可以通过计算公式互相转换的,在内存存储上有区别之外,本质上没有区别
function c() {
a()
b()
}
function m() {
c()
}
m()
函数调用栈的过程(从栈底往栈顶看)
b b入栈,执行,执行完后出栈,栈变短
a a入栈,执行,往下执行,发现b
c c执行,发现a
m 入栈,执行 发现调用c,于是c入栈
js是单线程的,事件驱动的,这里的事件包含:I/O、网络、计时器、鼠标、键盘输入等等
while (queue.waitForEvent()) { //等待事件,如有用户点击按钮或者定时器到期
queue.processNextEvent();//执行事件,这里可能会产出新事件,如:调用了 setTimeout,新事件会送入到队列中,等待被后面的循环执行
}
阅读全文 »»
如果小程序只需要识别用户,而不需要获得用户的昵称等信息,那么整个过程是没有弹窗授权操作的,如果需要进一步获得用户信息,则需要放置下面这个按钮
阅读全文 »»如果你在寻找跨标签页通信解决方案请看这篇文章
1、利用postMessage
postMessage的函数原型:
otherWindow.postMessage(message, targetOrigin, [transfer]);
假设页面B(http://parent-frame.org:8080/b.html
)嵌套了另一个域名下的页面A(http://frame.org:8080/a.html
)
1、子向父发信息:
iframe内的 子页面 A
parent.postMessage("来自子页面的消息", "http://parent-frame.org:8080")
父页面 B
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event) {
var origin = event.origin
//验证来源是否可信
if (origin !== "http://frame.org:8080") {
return
}
//解析事件数据
//event.data
}
阅读全文 »»