介绍 观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。 使用观察者模式的好处: 1.支持简单的广播通信,自动通知所有已经订阅过的对象。 2.页面载入后目标对象很容易与观察者存在一种动态关联,增加了灵活性。 3.目标对象与观察者之间的抽象耦合关系能够单独扩展以及重用...
强缓存: 到底什么是强缓存?强在哪?其实强是强制的意思。当浏览器去请求某个文件的时候,服务端就在respone header里面对改文件做了缓存配置。缓存的时间、缓存类型都由服务端控制。强缓存实现: cache-control: max-age=315360000, public ,immutable客户端和代理服务器都可以缓存该资源,在315360000秒(10年)的有效期内,如果有请求该资源的需求的话就直接读取缓存,statu code:200 ,即使用户做了刷新操作,也不向服务器发起...
代码如下:<span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version= ) <script type=”text/javascript” src=”jb51.js?version=1.2.6″></script> <link rel=’stylesheet’ href=’base.css?version=2.3.3′ type=’text/css’ />使用参数有两种可能: 第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即上面代码对于文件来说 等价于 代码如下:<script typ...
这篇文章主要介绍了HTML页面自动清理js、css文件的缓存(自动添加版本号),小编觉得挺不错的,现在分享给大家HTML源码,也给大家做个参考。对HTML感兴趣的小伙伴们一起跟随小编过来看看吧 在web项目开发过程中,我们经常会引用css、js文件,更新文件后常出现缓存问题(明明更改了代码,在浏览器上访问的时候却没有发生变化),这种情况我们通常采用以下两种解决方案:1、手动清除浏览器缓存2、添加版本号(如 layout.css?v=1)个人...
近几个月来的工作是一个交易系统持续改进项目,迭代发布周期大约为2~3周。最近一次迭代是V16版,在礼拜三完成发布。不幸的是,第二天上午就被老大逮过去。原来老大从生产中揪出了一个bug,大致的问题如下: 系统中有一个常用的自定义控件,目的是协助选择客户,而V16版的持续改进需求是给控件增加两个筛选选项,支持不同的默认值配置。很简单的一个需求,代码修改也简单,其中一个修改是给一个js文件里边的一个函数增加了一个传入参...
近几个月来的工作是一个交易系统持续改进项目,迭代发布周期大约为2~3周。最近一次迭代是V16版,在礼拜三完成发布。不幸的是,第二天上午就被老大逮过去。原来老大从生产中揪出了一个bug,大致的问题如下: 系统中有一个常用的自定义控件,目的是协助选择客户,而V16版的持续改进需求是给控件增加两个筛选选项,支持不同的默认值配置。很简单的一个需求,代码修改也简单,其中一个修改是给一个js文件里边的一个函数增加了一个传入参...
代码如下:css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version= ) 使用参数有两种可能: 第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即上面代码对于文件来说 等价于 代码如下: 但浏览器会认为他是 该文件的某个版本! 第二、客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷性缓存的作用。大家可能有时候发现...
在web项目开发过程中,我们经常会引用css、js文件,更新文件后常出现缓存问题(明明更改了代码,在浏览器上访问的时候却没有发生变化),这种情况我们通常采用以下两种解决方案: 1、手动清除浏览器缓存 2、添加版本号(如 layout.css?v=1) 个人认为方法2更快,因为清除浏览器缓存还要等浏览器响应。但是每次更改版本号也很麻烦,所以需要想办法自动添加版本号, 以下是本人收集的方法: 方法一:可以通过js自动给html添加版本号<...
作用:在html中,给引用的js文件动态添加版本号,可以去掉js缓存,保证使用的js始终是最新的js 。这次方案是使用自定义标签完成。 不让页面缓存这些文件方法其实很多,但我们经常用的就这几样,这里我用到的是在资源后面加版本号来实现资源不缓存的功能,具体代码如下 package com.nglee.house.config.custom;import org.springframework.stereotype.Component; import org.thymeleaf.dialect.AbstractProcessorDialect; import or...
我有一个java / spring网络应用程序应用程序,它使用相当多的javascript作为gui的一部分.然而,当我发布新版本时,我是手动的,很好地使用我的ide的重构工具,如果编辑它们,则重命名javascript文件. 这可以避免用户遇到不兼容/过时的javascript文件,但不包含新功能……或者更糟糕的是使用更新的jsp / html. 有没有更好的方法将版本添加到javascript文件及其脚本标记引用?解决方法:你可以这样做.其中强制浏览器加载新更新的javascript.y...
node中使用log4js4.x版本记录 const log4js = require(log4js); log4js.configure({appenders: {logFile: { //文件形式打印日志type: "dateFile",filename: ../logs/project,//写入日志文件的路径alwaysIncludePattern: true,//(默认为false) - 将模式包含在当前日志文件的名称以及备份中//compress: true,//(默认为false) - 在滚动期间压缩备份文件(备份文件将具有.gz扩展名)pattern: "-yyyy-MM-dd.log",//(可选,默认为....
嗨,我只想过滤出控制台警告和错误,只是为了查看日志.当您单击小过滤器按钮并选择要查看的消息类型时,可以非常轻松地执行此操作. 但是,我发现在开发控制台Chrome版本58中,过滤器按钮是GONE !!! 看左上角.曾经有一个小巧的按钮形状的按钮. 解决方法:事实证明,自Chrome 58以来,Chrome开发人员已经采用了某种“保守的日志模式”的东西,这基本上意味着你不能像过去那样过滤掉警告和错误. 我现在正在使用firefox.
# 安装 nodejs ?以下介绍的是命令行安装方法,读者也可以到 nodejs官网 上下载安装最新版。sudo apt-get install nodejs-legacy sudo apt-get instatll npm升级npm为最新版本 sudo npm install npm@latest -g往往用命令行安装的nodejs不是最新版本,而且升级nodejs并不是件非常简单的事情;这时我们需要用非常好用的nodejs版本管理模块n sudo npm install -g n通过 模块n 安装指定版本的 nodejs sudo n latest sudo n stable sudo ...
查看了一下里面用的TomBox.js代码也没看出个所以然了 后来经过经理的提醒,可能是Juqery升级之后选择器语法问题 问题可能出在第73行 代码如下:TB_TempArray = $("@a[@rel="+imageGroup+"]").get();后来在网上查了一下 将代码改为 代码如下:TB_TempArray = $("a[@rel="+imageGroup+"]").get(); 去掉 "@"符号之后就正常了。
查看了一下里面用的TomBox.js代码也没看出个所以然了 后来经过经理的提醒,可能是Juqery升级之后选择器语法问题 问题可能出在第73行 代码如下:TB_TempArray = $("@a[@rel="+imageGroup+"]").get();后来在网上查了一下 将代码改为 代码如下:TB_TempArray = $("a[@rel="+imageGroup+"]").get(); 去掉 "@"符号之后就正常了。