HTTP消息头之Cache-control
其作用根据不同的重新浏览方式分为以下几种情况:
(1) 打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5
表示当访问此网页后的5秒内再次访问不会去服务器
(2) 在地址栏回车
如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。
(3) 按后退按扭
如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问
(4) 按刷新按扭
无论为何值,都会重复访问当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。
另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问:
Expires: Fri, 31 Dec 1999 16:00:00 GMT
1. 打开网站后台编辑器里的admin/editor/fckconfig.js这个文件
找到FCKConfig.ImageUpload = false 这句,把false改成true就行啦。
FCKConfig.ImageBrowser = false ; 这里也同样把false改成true
2. 看一下admin/editor/editor目录下面的filemanager文件夹是否存在,如果不在就去下载一个2.6.3版本以上的fck编辑器,把里面的filemanager文件夹复制过来。当然这里是ASP的,所以其他语言像PHP什么的文件夹可以删除。
3. 接下来设置文件上传的路径,打开admin/editor/filemanager/connectors/asp文件夹的config.asp这个文件进行如下设置
ConfigIsEnabled = True 是否开启上传功能
ConfigUserFilesPath = “../../../../../uploads/” 文件上传目录,相对于该文件夹
这里要重点指出的ConfigUserFilesPath = “../../../../../uploads/”这里如果这样设置,我最后发现两个问题
A. ConfigUserFilesPath = “../../../../../uploads/”这样设置虽然图片可以上传,但插入编辑器里的图片路径是有问题的,所以我试了很多次最后把它改成ConfigUserFilesPath = “/uploads/”就可以了。如果您的网站是放在下级文件夹里也可以这样设置ConfigUserFilesPath = “文件夹名称/uploads/”。
B. 至于第二个问题,我感觉好奇怪,FCKeditor编辑器的图片路径会出现两个斜杠//,虽然图片也能显示,但看起来总归不舒服。请打开admin/editor/editor/ filemanager/connectors/asp文件夹里的,io.asp这个文件,请把:
function CombinePaths( sBasePath, sFolder)
CombinePaths = RemoveFromEnd(sBasePath, "/") & "/" & RemoveFromStart( sFolder, "/")
end function
改成
function CombinePaths( sBasePath, sFolder)
sFolder = replace(sFolder, "", "/")
CombinePaths = RemoveFromEnd(sBasePath, "/") & "/" & RemoveFromStart( sFolder, "/")
end function
4. 最后设置上传后的图片自动改名,请打开admin/editor/editor/ filemanager/connectors/asp文件夹里的commands.asp这个文件
在文件中添加如下语句
dim rannum
dim dtnow
dim getnewfilename
dtnow=now()
randomize
rannum=int(90*rnd)+10
getnewfilename=year(dtnow) & right("0" & month(dtnow),2) & right("0" & day(dtnow),2) & right("0"& hour(dtnow),2) & right("0”"& minute(dtnow),2) & right("0" & second(dtnow),2) & rannum
并将
sFileName = ouploader.file("newfile")name
改为
sFileName = getnewfilename &"."& split(ouploader.file("newfile").name,".")(1)
完成效果.:
OK 是服务器返回的信息,非ckeditor自带.
最后,如果能在上传成功后直接调用Info的onChange方法的话,是最完美的..可是我始终调用不了这个方法...
完毕,各位自己去测试吧. 另在image.js中有些方法也可以自己改动,如onOK-->表示在点击确定时会触发的方法
现在我们用的fckeditor己经更名为了ckeditor,本文章来告诉如何修改ckeditor上传文件路径这个问题,有需要的朋友可以简单的参考一下。至于 Unable to find an image manipulation component错误,原因很可能是生成缩略图的代码在.net framework4.0 版本上有点问题,除了要对ckfinder/userfiles文件夹赋予everyone完全控制权限,并根据千一网络的解决办法
· 若不使用缩略图功能:直接把 config.asp 中的 Thumbnails.Add "enabled", true 的第二个参数改为 false。
· 若要使用缩略图功能:可安装 ASP.NET 1.1/2.0 或 AspJpet 或 ASPImage 2 或 ASPThumb。对于 ASP.NET:
o 如果有错误,根据说明改 web.config 和 config.asp 中的 CKFinderTempPath 路径(注意以“”结尾,并且在 web.config 中,要用“\”代替“”);
o 如果还有错误,那么您就在浏览器中直接访问 http://.../ckfinder/core/connector/asp/loopback.aspx 看看能不能运行 ASP.NET,我遇到过一个错误就是 .NET 版本原因造成的,请参见 .NET Framework 4.0 无法运行 2.0 的 ASP.NET 程序解决。说明,若显示“403 - Forbidden”,说明 ASP.NET 已经运行起来了。
我自己修改的时候是所设置的路径值必须一样,如CKFinderTempPath =":外师外语系webckfinderuserfiles”,web.config的value也是一样,但我自己的电脑的这个问题能很好解决,而另一台服务器还依然有问题,郁闷之后由于赶时间还是乖乖的换成了fckeditor2.6.5,这回又涉及到了路径问题,因为默认的设置是基于网站根目录,根本不能适应随地使用的需要,花了好多功夫最后找到了一个解决办法,:
' 存放图片路径依然是基于站点,
代码如下 | 复制代码 |
Dim ConfigUserFilesPath |
源码中添加:
代码如下 | 复制代码 |
<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″ /> |
IE=edge告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame。
这样写可以达到的效果是如果安装了Google Chrome Frame(谷歌内嵌浏览器框架GCF),则使用GCF来渲染页面,如果为安装GCF,则使用最高版本的IE内核进行渲染。
Chrome Frame可以让旧版IE浏览器使用Chrome的WebKit渲染引擎处理网页,因此旧版IE用户可以体验到包括HTML5在内的众多现代网页技术。
标记用法(给网站添加X-UA-Compatible标签):
1.最基本的用法:在页面的头部加入
代码如下 | 复制代码 |
<meta http-equiv=”X-UA-Compatible” content=”chrome=1″ /> |
用以声明当前页面用chrome内核来渲染。
复杂一些的就是本文一开始看到的那中用法:
代码如下 | 复制代码 |
<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″ /> |
这样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如果为安装GCF,则使用最高版本的IE内核进行渲染。
使用CFInstall.js检测当前的IE浏览器是否安装了GCF?
利用IE的奇怪特性,如果DOM字典里不存在此标签,可使用js的document.createElement来创建,它就会添加到DOM字典里即可识别;
淘宝是添加注释的时候
代码如下 | 复制代码 |
<!–[if IE]> |
我是这样写的:
代码如下 | 复制代码 |
<!–[if IE]> <script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js”></script> <style> .chromeFrameInstallDefaultStyle { /* default is 800px width: 800px; */ border: 5px solid blue; .chromeFrameOverlayContent .chromeFrameOverlayContent iframe .chromeFrameOverlayCloseBar .chromeFrameOverlayUnderlay } </style> <script> // The conditional ensures that this code will only execute in IE, // Therefore we can use the IE-specific attachEvent without worry window.attachEvent(“onload”, function() { CFInstall.check({ mode: “overlay”, node: “prompt”, destination: “http://clin003.com” }); }); </script> <![endif]–> |
以上代码可以自动检测是否安装了GCF,如果没安装,则会提示用户安装,安装完成后,或自动跳转到http://www.111cn.net。
更详细可以参考
chrome的开发文档 Chrome Frame: Developer Guide
微软官方文档 Specifying Document Compatibility Modes
X-UA-Compatible是IE8的专用标记,它告诉IE8采用何种IE版本去渲染网页(比如人见人烦的IE6)。不过在IE6测试的时候也是能够“提示用户安装GFC”的。
IE版本:ie6.0.0.2900.5512.xpsp_sp3_gdr.101209-1647
IE6下提示用户安装GFC页面
安装成功后自动转到指定页面,看到chrome渲染效果
经常会看到网站页有if lte IE if gte IE 这类代码,起初不知道什么意思,今天仔细找报找,终于发现了作用啊,经过google,baidu的搜索。
代码如下 | 复制代码 |
<!--[if lte IE 6]>
|
用法:
(1)
可使用如下代码检测当前IE浏览器的版本(注意:在非IE浏览器中是看不到效果的)
代码如下 | 复制代码 |
<!––[if IE]> <h1>您正在使用IE浏览器</h1> <!––[if IE 5]> <h2>版本 5</h2> <![endif]––> <!––[if IE 5.0]> <h2>版本 5.0</h2> <![endif]––> <!––[if IE 5.5]> <h2>版本 5.5</h2> <![endif]––> <!––[if IE 6]> <h2>版本 6</h2> <![endif]––> <!––[if IE 7]> <h2>版本 7</h2> <![endif]––> <![endif]––> |
那如果当前的浏览器是IE,但版本比IE5还低,该怎么办呢,可以使用<!–[if ls IE 5]>,当然,根据条件注释只能在IE5+的环境之下,所以<!–[if ls IE 5]>根本不会被执行。
lte:就是Less than or equal to的简写,也就是小于或等于的意思。
lt :就是Less than的简写,也就是小于的意思。
gte:就是Greater than or equal to的简写,也就是大于或等于的意思。
gt :就是Greater than的简写,也就是大于的意思。
! : 就是不等于的意思,跟javascript里的不等于判断符相同
(2)
应该如何应用条件注释
本文一开始就说明了,因为IE各版本的浏览器对我们制作的WEB标准的页面解释不一样,具体就是对CSS的解释不同,我们为了兼容这些,可运用条件注释来各自定义,最终达到兼容的目的。比如:
<!–- 默认先调用css.css样式表 –->
代码如下 | 复制代码 |
<link rel="stylesheet" type="text/css" href="css.css" /> <!–- 如果IE浏览器版是7,调用ie7.css样式表- –> <link rel="stylesheet" type="text/css" href="ie7.css" /> <!–-[if lte IE 6]> <!–- 如果IE浏览器版本小于等于6,调用ie.css样式表 -–> <link rel="stylesheet" type="text/css" href="ie.css" /> |
这其中就区分了IE7和IE6向下的浏览器对CSS的执行,达到兼容的目的。同时,首行默认的css.css还能与其他非IE浏览器实现兼容。
注意:默认的CSS样式应该位于HTML文档的首行,进行条件注释判断的所有内容必须位于该默认样式之后。
比如如下代码,在IE浏览器下执行显示为红色,而在非IE浏览器下显示为黑色。如果把条件注释判断放在首行,则不能实现。该例题很能说明网页对IE浏览器和非IE浏览器间的兼容性问题解决。
代码如下 | 复制代码 |
<style type="text/css"> <style type="text/css"> |
同时,有人会试图使用<!–-[if !IE]>来定义非IE浏览器下的状况,但注意:条件注释只有在IE浏览器下才能执行,这个代码在非IE浏览下非单不是执行该条件下的定义,而是当做注释视而不见。
相关文章
- 这篇文章主要为大家详细介绍了C#微信开发之发送模板消息的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解
这篇文章主要介绍了WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数,有助于读者更好的理解windows程序的消息机制,需要的朋友可以参考下...2020-04-25- memche消息队列的原理就是在key上做文章,用以做一个连续的数字加上前缀记录序列化以后消息或者日志。然后通过定时程序将内容落地到文件或者数据库。php实现消息队列的用处比如在做发送邮件时发送大量邮件很费时间的问...2014-05-31
- 这篇文章主要介绍了简单用VBS调用企业微信机器人发定时消息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
- 这篇文章主要介绍了python实现企业微信定时发送文本消息的实例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-25
- 这篇文章介绍了插件jquery.confirm弹出确认消息的实现方法,感兴趣的小伙伴们可以参考一下...2015-12-24
SpringCache 分布式缓存的实现方法(规避redis解锁的问题)
这篇文章主要介绍了SpringCache 分布式缓存的实现方法(规避redis解锁的问题),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-20IIS中User-mode caching引起的Cache-Control不为public问题的解决方法
在IIS的Output caching中如果启用了User-mode caching将引起Cache-Control为no-cache,从而造成页面不能被浏览器或代理服务器缓存,下面看解决方法...2016-01-27- 这篇文章主要介绍了Windows窗口消息,以实例形式详细罗列了Windows窗口消息,非常具有实用价值,需要的朋友可以参考下...2020-04-25
- 通过本教程可以实现帝国CMS后台给前台注册用户发消息,把内容输入框改为编辑器,可上传图片,等打开文件\e\admin\member\SendMsg.php 大约84行<textarea name="msgtext" cols="6...2016-01-27
- 本文着重介绍如何在XCODE中,通过C++开发在IOS环境下运行的缓存功能。算法基于LRU,最近最少使用,需要的朋友可以参考下...2020-04-25
SpringBoot2 整合Ehcache组件,轻量级缓存管理的原理解析
这篇文章主要介绍了SpringBoot2 整合Ehcache组件,轻量级缓存管理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-10- 很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。 ...2016-01-27
在Mac OS的PHP环境下安装配置MemCache的全过程解析
这篇文章主要介绍了在Mac OS的PHP环境下安装配置MemCache的全过程解析,MemCache是一套分布式的高速缓存系统,需要的朋友可以参考下...2016-02-18php memcache和php memcached比较以及问题
php memcache和php memcached是php的memcache分布式的高速缓存系统的两个客户端,php memcache是老客户端,php memcached是功能更加完善的新的代替php memcached的。...2016-11-25- 本文主要介绍了Go语言使用钉钉机器人推送消息的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-23
- 在微信回复信息,POST的XML数据如下图所示 ToUserName 为接收者名称 FromUserName 为发送者名称 被动回复,响应的信息如下: 这里要注意,ToUserName和FromU...2016-05-19
php5.3中ZendGuardLoader与wincache冲突问题的解决方法
这篇文章主要介绍了php5.3中ZendGuardLoader与wincache冲突问题的解决方法,需要的朋友可以参考下...2016-07-04PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
这篇文章主要介绍了PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-07-25