1 搜索请求如何处理(防抖)
function debounce(handle, delay) {
var timer = null;
return function() {
var _this = this,
_arg = arguments;
clearTimeout(timer);
timer = setTimeout(function() {
handle.apply(_this, _arg);
}, delay);
}
} // 其中 handle 为需要进行防抖操作的函数,delay 为延迟时间
2 搜索请求中文如何请求
前台需要对中文参数进行编码,调用js方法encodeURI(url),将url编码,然后请求
3 通过什么做到并发请求
用Promise,有Promise.all
4 http1.1时如何复用tcp连接
在HTTP 1.0中,客户端的每一个HTTP请求都必须通过独立的TCP连接进行处理,而在HTTP 1.1中,对这种方式进行了改进。客户端可以在一个TCP连接中发送多个HTTP请求,这种技术叫做HTTP复用(HTTP Multiplexing)。它与TCP连接复用最根本的区别在于,TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持。
5 浏览器事件流向
事件传播的顺序对应浏览器的两种事件流模型:捕获型事件流和冒泡型事件流。
冒泡型事件流:事件的传播是从最特定的事件目标到最不特定的事件目标。即从DOM树的叶子到根。【推荐】
捕获型事件流:事件的传播是从最不特定的事件目标到最特定的事件目标。即从DOM树的根到叶子。
6 事件的委托(代理 Delegated Events)的原理以及优缺点
优点是:
(1)可以大量节省内存占用,减少事件注册,比如在table上代理所有td的click事件就非常棒
(2)可以实现当新增子对象时无需再次对其绑定事件,对于动态内容部分尤为合适
缺点是:
事件代理的应用常用应该仅限于上述需求下,如果把所有事件都用代理就可能会出现事件误判,即本不应用触发事件的被绑上了事件。
7 <a>标签默认事件禁掉之后做了什么才实现了跳转
href和window.location.href
网友评论