keep-alive

keep-alive

只愿长相守 提交于 2020-01-18 19:42:20
一 keep-alive 是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。 <keep-alive> <loading></loading> </keep-laive> 二 当组件在keep-alive内被切换时组件的activated、deactivated这两个生命周期钩子函数会被执行。 三 被包裹在keep-alive中的组件的状态将会被保留,例如我们将某个列表类组件内容滑动到第100条位置,那么我们在切换到一个组件后再次切换回到该组件,该组件的位置状态依旧会保持在第100条列表处。 四 被keep-alive包裹的动态组件或router-view会缓存不活动的实例,再次被调用这些被缓存的实例会被再次复用,对于我们的某些不是需要实时更新的页面来说大大减少了性能上的消耗,不需要再次发送HTTP请求,但是同样也存在一个问题就是被keep-alive包裹的组件我们请求获取的数据不会再重新渲染页面,这也就出现了例如我们使用动态路由做匹配的话页面只会保持第一次请求数据的渲染结果,所以需要我们在特定的情况下强制刷新某些组件。 利用include、exclude属性 <keep-alive include="bookLists,bookLists"> <router-view></router-view> </keep-alive> <keep-alive

TCP retranmission timer overrides/kills TCP keepalive timer, delaying disconnect discovery

回眸只為那壹抹淺笑 提交于 2020-01-17 06:30:10
问题 Machine - linux, 3.10.19 kernel This is in a large distributed system, there are several servers and clients (on same as well as different nodes/machines) having TCP connections with each other. Test case: The client program node/machine is switched off (on purpose, test case) and the only way for server to know about his disconnection is via keepalive timer (idle time=40 sec, 4 probes, probe time=10 sec). Good case: This works fine in most of the cases, the server gets to know that the

HTTP Keep-Alive模式

送分小仙女□ 提交于 2020-01-16 19:57:49
——献给那些向我这样对HTTP的“伪”熟悉者。 故事发生在10月份的一次面试经历中,本来我不想说出来丢人显眼,但是为了警醒自己和告诫后人,我决定写成博文发出来。因为在面试过程中,我讲在2009年写过QQ农场助手,在这期间深入学习了HTTP协议,而且在2010-05-18写了博文: HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等 。面试官说既然我熟悉HTTP协议,就问“当HTTP采用keepalive模式,当客户端向服务器发生请求之后,客户端如何判断服务器的数据已经发生完成?” 说实话,当时我懵了,一直没有关注过keepalive模式。我只知道: HTTP协议中客户端发送一个小请求,服务器响应以所期望的信息(例如一个html文件或一副gif图像)。服务器通常在发送回所请求的数据之后就关闭连接。这样客户端读数据时会返回EOF(-1),就知道数据已经接收完全了。 我就这样被面试官判了死刑!!!说我完全停留在表面,没有深入(当时真的很受打击,一直自认为技术还不错!)。我当时真的很想找各种借口: 之前没有用到HTTP的keepalive模式,所以没有深入 好久没有用HTTP协议,细节忘了 实习的东西跟HTTP协议没有关系,用得少了就忘了 。。。。。。 觉得各种解释都是那么苍白无力!我再次感叹书到用时方恨少,也感叹一个人的时间是多么的有限

PHP socket server, check if client is alive

淺唱寂寞╮ 提交于 2020-01-13 05:24:25
问题 i have a php server listening for 1 c# client. When a connection is established, it is kept alive until client send command "quit" wich kills the PHP server. But when the c# client disconnect without the "quit" command (ie : clicking the close (x) button in the windows form) the server just keep listening, and cant receive any other connection from that client. Is there a way to check from the server side (PHP) if connection is still alive with client. My php server code is based on exemple1

Azure Website Connection Keep-Alive

北战南征 提交于 2020-01-12 21:22:24
问题 I was using Windows Azure Website to host my website. I want to enable Connection: Keep-Alive in my website, how to enable it for my website? How to check whether I have successfully enabled it on my website? How to set the timeout for the Connection: Keep-Alive and how to determine the best value for the timeout My server is Windows and using IIS 回答1: You can set most of the configuration options for IIS 8 in Azure Web Sites too. To enable keep-alive, add the following section in the web

Tomcat 是如何实现keep-alive

自古美人都是妖i 提交于 2020-01-12 08:48:55
http无状态,又是基于tcp,所以每次请求都要握手分手,在频繁的请求来说,很是浪费,且没有必要。 于是就有了大家都知道的keep-alive。关于keep-alive的概念,网上一大堆,我就不重复了,盗一张图,描述一下: keep-alive主要靠服务器实现,那么问题来了,作为java程序的主流服务容器,tomcat 是如何实现keep-alive的呢? 先看tomcat,以主流的nio实现为例 在NioEndpoint.SocketProcessor#doRun的方法中会处理三次握手: if (handshake == 0) { log.info("开启三次握手验证"); SocketState state = SocketState.OPEN; // Process the request from this socket if (event == null) { log.info("state = getHandler().process(socketWrapper, SocketEvent.OPEN_READ);"); state = getHandler().process(socketWrapper, SocketEvent.OPEN_READ); } else { log.info("state = getHandler().process

web service基础知识

一笑奈何 提交于 2020-01-11 16:17:47
web service基础知识 Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等。 当我们输入www.oldboyedu.com/时候,很快就能看到老男孩教育的官网了,这一切看起来很平淡无奇,背后又是什么道理呢?普通人可以不知道,但是咱们作为it开发人员,必须得掌握清楚背后的技术。 下面为你揭晓用户访问网站的基本流程 老男孩教育某python总监,讲了一天课感觉很累,下了班躺床上打开他的macbook pro,双击浏览器,输入www.pornhub.com网址后,系统首先会查找本地的DNS缓存以及hosts文件信息,确定是否存在www.pornhub.com域名对应的ip解析记录,如果有就直接获取ip进行访问服务器,第一次请求时,dns缓存是没有解析记录的,hosts文件多数是开发临时测试用 如果本地dns缓存和hosts文件都没有域名解析记录,系统就会把某python总监访问的网址解析请求发送给客户端设置的DNS服务器去解析,也叫做Local DNS,如果LDNS服务器的本地缓存有对应的解析记录就会直接返回给客户端IP地址,如果没有LDNS就会继续请求其他的DNS服务器 LDNS继续从DNS系统的"."(根)开始请求www.pornhub.com域名的解析

NSStream TCP Keep-alive iOS

落爺英雄遲暮 提交于 2020-01-09 07:30:08
问题 I have written this code to setup a stream with a server: -(void)streamOpenWithIp:(NSString *)ip withPortNumber:(int)portNumber; { CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef)ip, portNumber, &readStream, &writeStream); if(readStream && writeStream) { CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue); CFWriteStreamSetProperty(writeStream,

NSStream TCP Keep-alive iOS

拜拜、爱过 提交于 2020-01-09 07:29:59
问题 I have written this code to setup a stream with a server: -(void)streamOpenWithIp:(NSString *)ip withPortNumber:(int)portNumber; { CFReadStreamRef readStream; CFWriteStreamRef writeStream; CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, (__bridge CFStringRef)ip, portNumber, &readStream, &writeStream); if(readStream && writeStream) { CFReadStreamSetProperty(readStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue); CFWriteStreamSetProperty(writeStream,

HTTP的长连接和短连接

可紊 提交于 2020-01-08 10:23:46
一、长、短连接简介及应用    HTTP协议采用“ 请求-应答 ”模式。   1、当使用 普通模式(HTTP multiple connection,也称为短连接) ,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)。   2、当使用 Keep-Alive模式(HTTP persistent connection ,又称持久连接、连接重用) 时,Keep-Alive功能使客户端到服务器端的连接持续有效,后续对服务器进行数据请求时 仍然会保持TCP连接不断开 (不会再发RST包、不会再进行四次握手),等待在同域名下继续用这个通道传输数据, 避免了重新建立连接,这样更高效,性能更高。     http 1.0中 Keep-Alive 功能默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep-Alive连接就看服务器设置情况。   HTTP首部的 Connection: Keep-alive 是 HTTP1.0