在进行B/S前端开发时,页面代码要注意分离。这么做才是一种优良的编码行为。
1、js、css、html结构分离,可以使得页面更加整洁
2、js、css与html的分离可以使代码更大程度的重用
3、分离的结构便于脚本的平稳退化(迫使写出更好的额浏览器兼容js)
4、分离的结构可以对各种元素进行处理。如:
1)可以对js、jsp、图片等等进行压缩
2)可以对上述的js文件、css文件等进行压缩,通过压缩后传送到客户端,节约了网络资源
通过分离后,可以采用压缩技术与客户端缓存技术来优化项目。
在我使用的项目中,就采用了tk-filters来实现这一目的
1、下载tk-filters-1.0.1.zip
2、解压后将tk-filters.jar放到类路径
3、在解压后的conf目录下打开tk-filters.properties文件,里面涉及到了三个大项的配置
4、修改tk-filters.properties文件的压缩与缓存,使得启动这些功能
①、GZIPFilter.Enabled=true
②、GZIPFilter.LogStats=true
③、CacheFilter.Enabled=true
5、conf目录下面还有一个默认的web.xml文件的配置示例,上面都讲述了配置注意事项
6、在按照默认的示例配置web.xml时,还要根据实际情况进行配置,示例如下:
<filter> <filter-name>GZIPFilter</filter-name> <display-name>GZIPFilter</display-name> <description>Transparently compresses server output using Gzip encoding, when possible</description> <filter-class>com.bsoft.hzehr.biz.filter.GZIPFilter</filter-class> </filter> <filter> <filter-name>CacheFilter</filter-name> <display-name>CacheFilter</display-name> <description>Sends Expires HTTP headers to reduce unnecessary network traffic</description> <filter-class>com.tacitknowledge.filters.cache.CacheHeaderFilter</filter-class> </filter> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.js</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.css</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.jsonRequest</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.jshtml</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.dic</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.chart</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.ichart</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.graphic</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>/services/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>/print</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>/listprint</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.etReport</url-pattern> </filter-mapping> <filter-mapping> <filter-name>GZIPFilter</filter-name> <url-pattern>*.swf</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>*.js</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>*.css</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>*.gif</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>*.jpg</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>*.png</url-pattern> </filter-mapping>
参考资料:http://imti-qq.iteye.com/blog/1067202
相关推荐
在IT领域,客户端缓存是一种优化网页加载速度和性能的技术,它可以减少网络带宽的消耗,提高用户体验。本文将深入探讨如何通过Flash插件实现客户端的页面缓存,以及这一技术的相关知识点。 首先,理解“客户端缓存...
这篇文章将详细介绍 Android 客户端缓存机制的设计方案,包括文字缓存和多媒体文件缓存。 一、文字缓存 文字缓存是 Android 客户端缓存机制的重要组成部分。它可以将服务器返回的 JSON 数据保存到本地,以便快速...
redis 命令的自动流水线操作服务器辅助的客户端缓存具有客户端缓存的通用对象映射具有客户端缓存的 Cache-Aside 模式具有客户端缓存的分布式锁使用 rueidis mock 编写测试的助手OpenTelemetry 集成Hooks 和其他集成@...
Redis 6.0的核心创新在于其引入了多线程、客户端缓存以及访问控制列表(ACL)这三大特性,显著提升了系统性能和安全性。 首先,让我们深入探讨Redis 6.0的多线程特性。在之前的版本中,Redis采用的是单线程模型执行...
随着技术的不断发展,Redis也不断进化,其中Redis 6.0引入了多项重大改进,包括多线程、客户端缓存和增强的访问控制列表(ACL)。下面我们将详细探讨这些关键特性。 1. **多线程模型** 在Redis 6.0之前,Redis是单...
总结起来,Flex3的客户端缓存和模块化是提升应用程序性能的重要手段。通过合理地使用这两个特性,开发者可以创建出更流畅、响应更快的富互联网应用,为用户提供更好的体验。在具体实践中,要结合项目需求和用户反馈...
此外,为了保证数据安全,客户端可能还会进行定期的缓存同步和校验,确保本地缓存与服务器数据的一致性。 在实际使用中,用户需要注意合理配置客户端的缓存大小,以平衡本地存储资源的占用和性能提升。同时,监控...
点对点(P2P,Peer-to-Peer)传输程序是一种网络通信模型,其中每个参与者既是客户端也是服务器,能够直接与其他参与者交换数据。在给定的压缩包中,我们有一个用VC(Visual C++)编写的P2P传输程序,它可以作为...
为了解决这些问题,研究者们提出了基于客户端缓存优化和读请求调度的改进策略。 客户端缓存策略的改进是优化读时延的重要方向。传统的缓存策略通常基于静态规则,往往不能很好地适应动态变化的工作负载。因此,本...
用于解决Windows微信无法登录的客户端缓存清理批处理文件
IPCamera客户端缓存管理策略,对研究网络摄像机的开发者有帮助
5. 开启缓存功能:在ISCSI客户端启用本地缓存,将虚拟磁盘映射到缓存中。 在实际应用中,ISCSI本地缓存能显著提升大规模虚拟化环境、数据库应用、视频流媒体等高I/O负载场景的性能。但需要注意,缓存策略的选择、...
优化客户端缓存的策略包括设置合理的缓存策略,如指定缓存有效期(Cache-Control和Expires头部),以便浏览器知道何时应该重新获取资源。此外,还可以通过控制HTTP响应头部的Vary字段来处理内容协商,确保不同条件下...
1. 编写TCP服务器,接收远程客户端发送的数据(视频文件); 2. 接收线程将接收到的数据存入缓存区; 3. 另一线程从缓存区中取出数据存入文件,保证线程之间的同步; 4. 要保证存入文件后打开可以正常播放视频文件;...
总结,客户端基于缓存数据实现查询网络数据的方法是网络游戏优化的重要手段,通过合理设计缓存策略、数据同步机制以及安全性措施,可以显著提升游戏的运行效率和用户体验。在实际开发中,需要根据游戏特性和资源条件...
在提供的文件`fileserver.cpp`和`fileclient.cpp`中,我们可以预期它们分别实现了服务器端和客户端的功能。服务器端可能包含一个循环来处理多个客户端的连接请求,而客户端则向服务器发送文件传输请求,并接收服务器...
浏览器缓存 浏览器缓存主要可以分为两大类:客户端缓存和服务端...然而,Expires存在一个潜在的问题,那就是它依赖于服务器和客户端的时间同步。如果服务器与客户端的时间存在偏差,那么缓存的有效性可能会出现问题。
标签 "C++跨平台的网络文件传输客户端" 和 "网络文件传输客户端源码" 强调了两个关键点:一是程序使用C++编写,二是它的跨平台特性,意味着它可以运行在Windows、Linux、macOS等不同的操作系统上。这通常是通过使用...
受启发, fastify-disablecache插件设置以下响应标头和值以禁用客户端缓存: Surrogate-Control: no-store Cache-Control: no-store, no-cache, must-revalidate, proxy-revalidate Pragma: no-cache Expires: 0 您...