浏览器缓存

jQuery 结构分析

回眸只為那壹抹淺笑 提交于 2020-03-16 20:09:25
jquery核心 转自 http://www.iteye.com/topic/783260 (function( window, undefined ) { // 构造jQuery对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // 工具函数 Utilities // 异步队列 Deferred // 浏览器测试 Support // 数据缓存 Data // 队列 queue // 属性操作 Attribute // 事件处理 Event // 选择器 Sizzle // DOM遍历 // DOM操作 // CSS操作 // 异步请求 Ajax // 动画 FX // 坐标和大小 window.jQuery = window.$ = jQuery; })(window); 一 构造jquery. 相对于其它库里传统的构造对象方法. jquery提供了一种截然不同的方法. 它选择创造一个全新的奇异世界. 首先所有的jquery代码被一个自动执行的闭包包裹起来, 只在后面暴露$和jQuery这2个变量给外界 尽量避开变量冲突. Java代码 (function(window, undefined){ ….. })

nginx 加上ssl配置

强颜欢笑 提交于 2020-03-16 14:23:13
某厂面试归来,发现自己落伍了!>>> #user nobody; #双核2个进程 #worker_processes 2; #worker_cpu_affinity 01 10; #8核开启8个进程 worker_processes 8; worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; # 每进程最大可打开文件描述符数量(linux上文件描述符比较广义,网络端口、设备、磁盘文件都是) # 文件描述符用完了,新的连接会被拒绝,产生502类错误 # linux最大可打开文件数可通过ulimit -n FILECNT或 /etc/security/limits.conf配置 # 理论值 系统最大数量 / 进程数。但进程间工作量并不是平均分配的,所以可以设置的大一些 #设置了这个后,修改worker_connections值时,是不能超过worker_rlimit_nofile的这个值。 worker_rlimit_nofile

前端优化带来的思考,浅谈前端工程化

你说的曾经没有我的故事 提交于 2020-03-15 10:22:24
重复优化的思考 这段时间对项目做了一次整体的优化,全站有了20%左右的提升(本来载入速度已经1.2S左右了,优化度很低),算一算已经做了四轮的全站性能优化了,回顾几次的优化手段,基本上几个字就能说清楚: 传输层面:减少请求数,降低请求量执行层面:减少重绘&回流 传输层面的从来都是优化的核心点,而这个层面的优化要对浏览器有一个基本的认识,比如: ① 网页自上而下的解析渲染,边解析边渲染,页面内CSS文件会阻塞渲染,异步CSS文件会导致回流 ② 浏览器在document下载结束会检测静态资源,新开线程下载(有并发上限),在带宽限制的条件下,无序并发会导致主资源速度下降,从而影响首屏渲染 ③ 浏览器缓存可用时会使用缓存资源,这个时候可以避免请求体的传输,对性能有极大提高 衡量性能的重要指标为首屏载入速度(指页面可以看见,不一定可交互),影响首屏的最大因素为请求,所以请求是页面真正的杀手,一般来说我们会做这些优化: 减少请求数 ① 合并样式、脚本文件 ② 合并背景图片 ③ CSS3图标、Icon Font 降低请求量 ① 开启GZip ② 优化静态资源,jQuery->Zepto、阉割IScroll、去除冗余代码 ③ 图片无损压缩 ④ 图片延迟加载 ⑤ 减少Cookie携带 很多时候,我们也会采用类似“时间换空间、空间换时间”的做法,比如: ① 缓存为王,对更新较缓慢的资源&接口做缓存

ci框架执行流程

青春壹個敷衍的年華 提交于 2020-03-13 20:31:39
ci框架执行流程 index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源; Router 检查 HTTP 请求,以确定如何处理该请求; 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程; 在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查; 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源; 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于 后续的请求。 来源: oschina 链接: https://my.oschina.net/u/613887/blog/741478

redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)

谁说我不能喝 提交于 2020-03-13 05:14:43
一,redis介绍 redis是一个key-value存储系统。和memcached类似,它支持存储的value类型相对更多,包括string(字符串),list(列表),set(集合),zset(sorted set---有序集合)和hash(哈希类型)。与memcached一样,为了保证效率,数据都是缓存在内存中。区别是redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现master-slave(主从)同步。 Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcacehd这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了java,C/C++,C#,php,javaScript,Perl,Object-C,python,Ruby等客户端,使用很方便。 如果简单的比较redis与memcached的区别,基本上有以下3点: 1,redis不仅仅支持简单的key/value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 2,redis支持数据的备份,即master-slave模式的数据备份。 3,redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 在Reids中,并不是所有的数据都一直存储在内存中

ThinkPHP的入门学习-目录结构及基础知识

不羁的心 提交于 2020-03-13 00:52:47
一、系统目录(ThinkPHP框架目录) ThinkPHP.php 框架的公共入口文件 Common 包含框架的一些公共文件、系统定义、系统函数和惯例配置等 Lang 系统语言文件 Lib 系统基类库目录 Tpl 系统模板目录 Mode 框架模式扩展目录 Vendor 第三方类库目录 二、应用目录(项目目录) index.php 项目入口文件(可以使用其他名称或者放置于其他位置) Common 项目公共文件目录,一般放置项目的公共函数 Conf 项目配置目录,所有的配置文件都放在这里。 Lang 项目语言包目录(可选) Lib 项目类库目录,通常包括Action和Model子目录 Tpl 项目模板目录,支持模板主题 Runtime 项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Logs(日志文件)子目录 上面的只是默认方式,项目下面的目录名称和结构是可以重新定义的。其实项目目录并不需要开发人员手动创建,只需要定义好项目的入口文件之后,系统会在第一次执行的时候自动生成项目必须的所有目录结构(前提是项目目录具有可写权限,这点在Linux环境下面需要注意)。 可以看出新版的目录结构更加便于部署和配置,因为只有Runtime目录才是需要具备可写权限的,在Linux环境下面可以更加快速的部署和配置目录权限。 三、部署目录 当我们实际部署网站的时候

Nginx 性能优化有这篇就足够了!

▼魔方 西西 提交于 2020-03-12 23:41:45
1、Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor /proc/cpuinfo | wc -l [root@lx~]# vi/usr/local/nginx1.10/conf/nginx.conf worker_processes 4; [root@lx~]# /usr/local/nginx1.10/sbin/nginx-s reload [root@lx~]# ps -aux | grep nginx |grep -v grep root 9834 0.0 0.0 47556 1948 ? Ss 22:36 0:00 nginx: master processnginx www 10135 0.0 0.0 50088 2004 ? S 22:58 0:00 nginx: worker process www 10136 0.0 0.0 50088 2004 ? S 22:58 0:00 nginx: worker process www 10137 0.0 0.0 50088 2004 ? S 22:58 0:00 nginx: worker process www 10138 0.0 0.0 50088

百度面试题:从输入url到显示网页,后台发生了什么?

家住魔仙堡 提交于 2020-03-12 18:55:03
参考 http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html 原文:http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/ 作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。 本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~ 1. 首先嘛,你得在浏览器里输入要网址: 2. 浏览器查找域名的IP地址 导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 有趣的是,操作系统没有告诉浏览器储存DNS记录的时间,这样不同浏览器会储存个自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓存 – 接着,前面的查询请求发向路由器

在浏览器中输入网址后是怎么跳转到指定的服务器的

血红的双手。 提交于 2020-03-12 18:53:10
1. 首先,在浏览器里输入网址 2. 浏览器查找域名的IP地址 DNS查找过程如下: 浏览器缓存 – 浏览器会缓存DNS记录一段时间。 操作系统没有告诉浏览器储存DNS记录的时间,所以不同浏览器会储存各自固定的一个时间(2分钟到30分钟不等)。 系统缓存 – 如果在浏览器缓存里没有找到需要的记录,浏览器会做一个系统调用(windows里是gethostbyname)。这样便可获得系统缓存中的记录。 路由器缓存 – 接着,前面的查询请求发向路由器,它一般会有自己的DNS缓存。 ISP DNS 缓存 – 接下来要check的就是ISP缓存DNS的服务器。在这一般都能找到相应的缓存记录。 递归搜索 – 你的ISP的DNS服务器从跟域名服务器开始进行递归搜索,从.com顶级域名服务器到Facebook的域名服务器。一般DNS服务器的缓存中会有.com域名服务器中的域名,所以到顶级服务器的匹配过程不是那么必要了。 DNS返回多个IP时的解决方案: 1.负载平衡器:是以一个特定IP地址进行侦听并将网络请求转发到集群服务器上的硬件设备。 一些大型的站点一般都会使用这种昂贵的高性能负载平衡器。 2. 地理DNS:根据用户所处的地理位置,通过把域名映射到多个不同的IP地址提高可扩展性。这样不同的服务器不能够更新同步状态,但映射静态内容的话非常好。比如输入google.com在中国返回www

Web前端技术分享之浏览器缓存机制

陌路散爱 提交于 2020-03-10 19:37:00
Web缓存是指一个Web资源(如HTML页面、图片、JS、数据等)存在于Web服务器和客户端(浏览器)之间的副本。一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。但如何理解浏览器缓存呢?接下来的我就给大家简单介绍一下。 Web缓存有什么作用? 1、减少网络带宽消耗。无论对于网站运营者或者用户,带宽都代表着金钱,过多的带宽消耗,只会便宜了网络运营商。当Web缓存副本被使用时,只会产生极小的网络流量,可以有效的降低运营成本。 2、降低服务器压力。给网络资源设定有效期之后,用户可以重复使用本地的缓存,减少对源服务器的请求,间接降低服务器的压力。同时,搜索引擎的爬虫机器人也能根据过期机制降低爬取的频率,也能有效降低服务器的压力。 3、减少网络延迟,加快页面打开速度。带宽对于个人网站运营者来说是十分重要,而对于大型的互联网公司来说,可能有时因为钱多而真的不在乎。那Web缓存还有作用吗?答案是肯定的,对于最终用户,缓存的使用能够明显加快页面打开速度,达到更好的体验。 浏览器端的缓存规则 对于浏览器端的缓存来讲,这些规则是在HTTP协议头和HTML页面的Meta标签中定义的。他们分别从新鲜度和校验值两个维度来规定浏览器是直接使用缓存中的副本,还是需要去源服务器获取更新的版本。 1)新鲜度(过期机制):也就是缓存副本有效期