在开发过程中发现,用require来加载一个很大(几百K,甚至几兆)的配置文件时,会造成响应超时。...如果把这个配置文件的内容序列化后,用file_get_contents获取文件然后反序列化的方法来加载,就会快很多。 经过近两周的研究,大概知道了其中的原因。...zend_execute (执行每个opcode) -> zend_deactive(清理本次请求用到的数据) 如果遇到 require 或者 include 之类的函数时,...这样的话,require会比file_get_contents多出大量的系统调用。而file_get_contents无需作这么多用户态和内核态的切换工作。...内部是函数调用,而require是一个内置的opcode,所以调用file_get_contents时的开销要比require略大; 所以,小文件的时候,file_get_contents 读取文件时
(无需再每个页面中都定义一次) 2、减少了页面体积,可以提高页面加载速度。(脚本文件和样式表可以被浏览器单独缓存) 3、提高了脚本和样式表的可维护性。...如果数据量大,可以考虑分页,或者按需加载 18、避免404 why 什么情况下会发生404错误? 404 意味着Not Found,意思是说未找到资源。...既然如此,那么至少会有两种原因导致404错误: 该资源按理说是要有,但我们没有提供。用户按照正常的方式来请求,所以资源找不到。 该资源本来就不存在,用户按照不正常的方式来请求,当然还是找不到。...404错误会有什么影响? 看不到的影响:有时候,404错误发生了,用户可能根本没有感觉到。...将该文件放在单独的主机中,可以避免在请求该文件时发送cookie。
(无需再每个页面中都定义一次) 2、减少了页面体积,可以提高页面加载速度。(脚本文件和样式表可以被浏览器单独缓存) 3、提高了脚本和样式表的可维护性。...如果数据量大,可以考虑分页,或者按需加载 18、避免404 ? why 什么情况下会发生404错误? 404 意味着Not Found,意思是说未找到资源。...既然如此,那么至少会有两种原因导致404错误: 该资源按理说是要有,但我们没有提供。用户按照正常的方式来请求,所以资源找不到。 该资源本来就不存在,用户按照不正常的方式来请求,当然还是找不到。...404错误会有什么影响? 看不到的影响:有时候,404错误发生了,用户可能根本没有感觉到。...将该文件放在单独的主机中,可以避免在请求该文件时发送cookie。
16、尽早刷新输出缓冲 尤其对于css,js文件的并行下载更有意义 17、使用GET来完成AJAX请求 当使用XMLHttpRequest时,浏览器中的POST方法是一个“两步走”的过程:首先发送文件头...在url小于2K时使用GET获取数据时更加有意义。 18、延迟加载 确定页面运行正常后,再加载脚本来实现如拖放和动画,或者是隐藏部分的内容以及折叠内容等。...首先,这种加载会破坏并行加载;其次浏览器会把试图在返回的404响应内容中找到可能有用的部分当作JavaScript代码来执行。...事件冒泡时你可以捕捉到事件并判断出是哪个事件发出的。 你同样也不用为了操作DOM树而等待onload事件的发生。你需要做的就是等待树结构中你要访问的元素出现。你也不用等待所有图像都加载完毕。...这个图片文件还会影响下载顺序,例如在IE中当你在 onload中请求额外的文件时,favicon会在这些额外内容被加载前下载。
# 验证码请求: GET http://localhost:8060/captcha.jpg?...当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。...网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。 出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。例如,XMLHttpRequest和Fetch API遵循同源策略。...这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头。...找不到资源 所以我们需要配置题目服务的路由规则,将题目中心的页面请求经网关转发到题目服务。
在文档底部放置脚本定义或引用 Avoid CSS Expressions 避免使用CSS中的Expressions Make JavaScript and CSS External 将脚本文件和样式表作为外部文件引用...Configure ETags 配置ETags Make Ajax Cacheable 使AJAX调用尽可能利用缓存特性 Flush the Buffer early 尽可能早地发送缓冲区内容 User Get...for AJAX Requests 为AJAX请求使用GET方法 Post-load Components 延迟或按需加载内容 Preload Components 预加载组件 No 404s 不要出现...404页面 Reduce the Number of Dom Elements 减少DOM元素数量 Spilt Components Acorss Domains 跨域分离组件 Minimize
图片尽量避免使用DataURLDataURL图片没有使用图片的压缩算法文件会变大,并且要解码后再渲染,加载慢耗时长。图片懒加载图片对页面加载速度影响非常大。...追加的属性需要通过描述数组间接查找)使用数组代替类数组(v8会对数组进行优化)比如先将类数组转化成数组避免读取数组越界(比如for循环多查找1个下标会照成性能相差6倍)造成undefined和数字比较数组也是对象,当找不到对应下标的时候回沿着原型链向上找造成额外开销业务上无效...CSS 相关优化把样式表放在标签中css放在head标签中比css放在body标签尾部少了一次构建RenderTree, 一次计算布局和一次渲染网页, 因此性能会更好。...不要使用CSS样式表使用替代@import不要使用filter避免元素类型转化(数组中放多种类型不利于v8引擎优化代码)降低css对渲染的阻塞(按需加载,放在dom前面加载)利用pu完成动画...DOM元素的数量划分内容到不同域名尽量减少使用iframe避免404错误服务器相关优化使用CDN添加Expires或Cache-Control响应头启用Gzip配置Etag尽早输出缓冲Ajax请求使用GET
,404表示未找到资源等)、响应头部信息以及通常情况下的响应主体(例如HTML页面或JSON数据)。...HTTP状态码(HTTP Status Code)是服务器在响应客户端请求时返回的标准三数字代码,用以表示请求处理的状态。...404 Not Found:服务器找不到与请求URI匹配的资源。405 Method Not Allowed:服务器不支持客户端用于请求的方法(GET、POST等)。...层叠样式表(CSS)CSS (Cascading Style Sheets) 是一种样式表语言,用于描述HTML文档或其他XML格式文件的内容呈现方式。...层叠与继承:CSS遵循“层叠”原则,当多个样式规则应用于同一元素时,按照特定的优先级顺序合并这些规则。此外,子元素可以继承父元素的一些非继承性属性值,如字体、颜色等。
,所以报404。...# 验证码请求: GET http://localhost:8060/captcha.jpg?...当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。...网络上的许多页面都会加载来自不同域的CSS样式表,图像和脚本等资源。 出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。...10.配置题目服务的路由规则 我们访问题目中心的类型页面,发现还是报404找不到资源 所以我们需要配置题目服务的路由规则,将题目中心的页面请求经网关转发到题目服务。
预加载是在浏览器空闲时请求将来可能会用到的页面内容(如图像、样式表和脚本)。使用这种方法,当用户要访问下一个页面时,页面中的内容大部分已经加载到缓存中了,因此可以大大改善访问速度。...首先,这种加载会破坏并行加载;其次浏览器会把试图在返回的404响应内容中找到可能有用的部分当作JavaScript代码来执行。 11....因此使用GET最为恰当,因为它只需发送一个TCP包(除非你有很多cookie)。IE中URL的最大长度为2K,因此如果你要发送一个超过2K的数据时就不能使用GET了。 ...根据HTTP规范,GET意味着“获取”数据,因此当你仅仅获取数据时使用GET更加有意义(从语意上讲也是如此),相反,发送并在服务端保存数据时使用POST。 17....把样式表置于顶部 在研究Yahoo!的性能表现时,我们发现把样式表放到文档的内部似乎会加快页面的下载速度。这是因为把样式表放到内会使页面有步骤的加载显示。
预加载是在浏览器空闲时请求将来可能会用到的页面内容(如图像、样式表和脚本)。使用这种方法,当用户要访问下一个页面时,页面中的内容大部分已经加载到缓存中了,因此可以大大改善访问速度。...,加载也需要时间 · 会阻止页面加载 · 没有语意 10、不要出现404错误 HTTP请求时间消耗是很大的,因此使用HTTP请求来获得一个没有用处的响应(例如404没有找到页面)是完全没有必要的...首先,这种加载会破坏并行加载;其次浏览器会把试图在返回的404响应内容中找到可能有用的部分当作JavaScript代码来执行。...因此使用GET最为恰当,因为它只需发送一个TCP包(除非你有很多cookie)。IE中URL的最大长度为2K,因此如果你要发送一个超过2K的数据时就不能使用GET了。 ...根据HTTP规范,GET意味着“获取”数据,因此当你仅仅获取数据时使用GET更加有意义(从语意上讲也是如此),相反,发送并在服务端保存数据时使用POST。
延迟加载 页面初始加载时哪些内容是绝对必需的?不在答案之列的资源都可以延迟加载。比如: 非首屏使用的数据、样式、脚本、图片等; 用户交互时才会显示的内容。...等首屏加载完成或者用户操作时,再去渲染剩余的页面内容。 6. 预加载 预先加载利用浏览器空闲时间请求将来要使用的资源,以便用户访问下一页面时更快地响应。...根据HTTP规范,GET用于获取数据,POST则用于向服务器发送数据,所以Ajax请求数据时使用GET更符合规范。 7....把样式表放在中 把样式表放在中可以让页面渐进渲染,尽早呈现视觉反馈,给用户加载速度很快的感觉。...如果把样式表放在页面底部,一些浏览器为减少重绘,会在 CSS 加载完成以后才渲染页面,用户只能对着白屏干瞪眼,用户体验极差。把样式表放到文档的HEAD部分能让页面看起来加载地更快。 2.
编译前报错:$exception {"未能从程序集“XSW.MySQLDAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型...:"XSW.MySQLDAL.EnterpriseLibraryProductDAL"} System.TypeLoadException 编译通过后:$exception {"找不到方法:
") //找不到name给它一个默认值Guest 12 password := c.Query("password") //找不到直接赋空 13 //GetQuery返回两个参数...("name", "Guest") //找不到name给它一个默认值Guest 25 password := c.Query("password") //找不到直接赋空 26..."status": 404, 20 "error": "404, page not exists!"...name, password, sec) 30 log.Panicln(ok) 31} 使用post需要添加头字段 如下: 七、中间件MiddleWare 注意,gin.Default() 默认是加载了一些框架内置的中间件的...,而 gin.New() 则没有,根据需要自己手动加载中间件。
使用method="post" (而不是 method="get" )是非常重要的,因为提交这个表单的行为将改变服务器端的数据。当你创建一个改变服务器端数据的表单时,使用method="post"。..., question_id): question = get_object_or_404(Question, pk=question_id) try: selected_choice...让我们来编写这个视图: from django.shortcuts import get_object_or_404, render def results(request, question_id...): question = get_object_or_404(Question, pk=question_id) return render(request, "polls/results.html...如果你提交时没有选择任何 Choice,你应该看到错误信息。 我们的 vote() 视图代码有一个小问题。
引入缓慢的第三方内容,比如标志和广告 安全沙箱 并行下载脚本 代价高昂,即使是空白的iframe 阻塞页面加载 非语义 10.杜绝404 HTTP请求代价高昂,完全没有必要用一个HTTP请求去获取一个无用的响应...(比如404 Not Found),只会拖慢用户体验而没有任何好处。...14.把样式表放在顶部 在Yahoo!研究性能的时候,我们发现把样式表放到文档的HEAD部分能让页面看起来加载地更快。...在IE中,如果一个不可缓存的外部脚本被页面引入了两次,它会在页面加载时产生两个HTTP请求。即使脚本是可缓存的,在用户重新加载页面时也会产生额外的HTTP请求。...: "10c24bc-4ab-457e1c1f"HTTP/1.1 304 Not Modified 32.对Ajax用GET请求 使用XMLHttpRequest时,浏览器的POST请求是通过一个两步的过程来实现的
路由机制 客户端(包括 Web 前端、移动端等等)向服务器发起请求时包括两个元素:路径(URI)以及 HTTP 请求方法(包括 GET、POST 等等)。...URI 时执行,例如: app.get('/middleware', someMiddleware, (req, res) => { res.send('Hello World'); }); 那么用户只有在访问.../middleware 时,定义的 someMiddleware 中间件才会被触发,访问其他路径时不会触发。...可以看到样式表和图片都成功加载出来了! 处理 404 和服务器错误 人有悲欢离合,月有阴晴圆缺,服务器也有出错的时候。...404 和 500 的模板代码分别如下: 找不到你要的页面了!
404代表服务器没有找到资源,网页中需要加载一个外部脚本,结果返回一个404,不仅阻塞了其他脚本下载,客户端还会将下载回来的内容(404)当成JavaScript去解析。...注意cookie设置的domain级别,没有必要时不要影响到sub-domain 设置合适的过期时间,较长的过期时间可以提高响应速度。 c. ...文件压缩 Accept-Encoding:g-zip,Gzip压缩传输文件通常可以减少70%网页内容的大小,包括脚本、样式表、图片等文件。 ② 减少请求的次数 a. ...文件适当的合并 将多个JS脚本文件合并成一个文件,将多个CSS样式表文件合并成一个文件,以此来减少文件的下载次数。 b. ...浏览器在CSS全部传输完全之前不会去渲染任何的东西,将CSS放在文档顶部能使页面加载得更快。 ② 减少重绘和回流 重绘和回流会延长网页的加载时间。
方法:DNS缓存、将资源分布到恰当数量的主机名,平衡并行下载和DNS查询 避免重定向:多余的中间访问 使Ajax可缓存 非必须组件延迟加载 未来所需组件预加载 减少DOM元素数量...将资源放到不同的域下:浏览器同时从一个域下载资源的数目有限,增加域可以提高并行下载量 减少iframe数量 不要404 Server方面 使用CDN 添加Expires或者Cache-Control...响应头 对组件使用Gzip压缩 配置ETag Flush Buffer Early Ajax使用GET进行请求 避免空src的img标签 Cookie方面 减小cookie大小 引入资源的域名不要包含cookie...css方面 将样式表放到页面顶部 不使用CSS表达式 使用不使用@import 不使用IE的Filter Javascript方面 将脚本放到页面底部 将javascript和css从外部引入 压缩javascript
解决方式,就是指定一个固定的“页”,在找不到资源时显示。...具体如下: Asp.Net MVC中的controller都是集成自Controller这个抽象类,在这个类中,定义了一个HandleUnknownAction 方法,左右就是在发生HTTP 404时,...这样,在每次找不到相应的Action时,都能执行这个方法。去调用相应的View。...当然这也存在一个隐患,如果出现下面【三】的情况时,也就是只声明了一个HTTP.Post的方法,没有相应的Http.Get的同名方法,也能把通过这种方式,把页面加载出来。 怎么解决呢?...三、找不到资源: 请求URL:http://localhost:13850/Customer/Details controller中的对应Action,定义为HTTP Post,且没有对应的Http Get