缓存带来的不好之处 -- 如何解决自动更新
来源:互联网 发布:单片机各种线介绍 编辑:程序博客网 时间:2024/05/21 09:05
缓存的好处不用多说,可以想像,如果机器没有了缓存,那电脑的世界将会变成什么样的?
昨天,在做自动更新的时候,测出来一个问题,明明我上传新文件的版本是 1.0.2.2,但客户下载到的是1.0.1.0 的,在本机测试所下载的版本是1.0.2.2 ,让同事测试 1.0.2.2,这么一来,可能是缓存造成的问题,于是就让(我现在出差)以前的同事,同学,现在留在公司的同事,三个人来做一下测试。首先我上传一个新的文件,让他们都下载,我也下载,得到的是同一个文件,然后从服务器上把这个文件给删除,他们还能下载,我不能下载,因为我是内部网,所以访问的直接是真实的地址,访问时告诉我,文件找不到。这就证明缓存起作用了。如果更新太频繁的话,不同区域内的客户所下载到的就一定不是同一个文件了,所以会造成,看是更新成功,实际更新的还是原来版本的错误,可这里有一点疑问?自动更新有个配置文件,只有这个配置文件变化时,客户端才会下载文件,配置文件的格式是 xml ,只要这个配置文件一变化,客户端就能检测到,调用自动更新,但上传的更新文件,一般是 dll和 exe 格式的,这两种格式在网络的缓存机制上有什么区别?这是值得我们去区分的。
测试还在继续进行,过了大约15分钟后,朋友们都无法下载那个文件,哈哈,缓存失效了,为了测试缓存失效的时间,我们继续双做了一下测试,方法同上,准确测试出缓存失效的时间是15分钟,哈哈,自动更新的问题可以解决了,就是15分钟之前上传更新文件,然后再保存自动更新的配置文件。问题从理论上解决。
但,我按照以上的方法进行维护自动更新,
结果事实上不是如此,我在今天用自动更新的时候,且文件是昨天晚上上传的,一共上传5个文件,有4个已经变化了,还有一个没有变,这是为什么?
看来测试还要继续进行有以下两种情况没有考虑到缓存是否会发生变化
文件没有从服务器上删除的情况
1.xml. 或 txt 格式的文件,这里如果检查文件还存在,缓存会不会继续保留之前的内容?
2.dll . 或 exe 格式的文件,这里如果检查文件还存在,缓存会不会继续保留之前的版本?
20090607 下午
测试结果:xml 与 dll 的更新时间相同,为什么自动更新配置文件一保存,客户端就发现有了更新?
不管这个了,已经找到一个解决方案,具体方案请见评论中的解决方案二
在这里要谢谢帮我测试的朋友,还有给我提建议的同事。虽然最后的解决方法是那么的不复会一提,但仍非常感谢,特别是张斌
20090625 下午续:
使用解决方案二,从 6月7号到6.24 号自动更新除了网络状况不好的情况下没有造成因为缓存而更新到旧版本的事故,但好景不长,每次在上传的时候添加日期,这半个多月维护下来,服务器上光更新文件就占200多M,实在是一个让人害怕的数字,大家都知道Internet服务提供商都是有大小限制的,这样的作法是在极大的浪费空间,说了这么多好像全是废话,核心问题:如何解决,本人目前有三种解决方案
1.在添加的时候手工删除旧版本
2.在添加的时候用程序自动删除旧版本
3.写一个小程序,根据文件名自动删除
(方法1) 手工删除不太现实,因为更新太频繁了,几乎每天要更新2-5次,况且要远程连接到主机,又要用肉眼去比较,找出过期的更新文件删除之,麻烦...
(方法2) 自动删除,不是不想,但不知道如何用命令去删除服务器上的文件,
(方法3) 这个操作就较为简单一点,想删除的时候,运行一下程序就行了
目前本人:使用1,来删除过期的更新文件
希望大家能再次提出宝贵意见,
更希望能得到另外一套完整的自动更新机制
能解决上述问题
能解决网络慢,下载更新文件失败的纠正方法
- 缓存带来的不好之处 -- 如何解决自动更新
- nvidia自动更新带来的问题
- php 解决文件状态缓存带来的问题
- 解决ListView 缓存机制带来的显示不正常问题
- javascript中ajax框架及解决缓存带来的问题
- 记性不好之--记录session清理缓存的时间点
- 如何解决AJAX 的缓存
- TSQLQuery的几个不好的之处
- 如何解决SOA产品给企业带来的安全问题
- 一些不好解决的问题
- 解决win10烦人的自动更新
- MVC清除缓存,可以解决浏览器后退键带来的问题
- 如何关闭MyEclipse的自动更新?
- 如何关闭 Chrome 的自动更新
- 如何关闭MyEclipse的自动更新
- 如何阻止windows10的自动更新?
- 如何解决图片缓存?
- 如何解决浏览器缓存
- 本线程钩子
- DateTime 存储到数据库中不带日期
- 代码调用控件右边的小箭头 应用于 DateTimePicKer Comobox
- 测试用例优先级与三轮测试的结合
- DIV+CSS—菜鸟分享学习心得!入门篇
- 缓存带来的不好之处 -- 如何解决自动更新
- C++容器:容器比较
- cstring char*补充
- 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup
- 创建NetBeans模块项目
- javascript访问加runat="server" 的Html控件的方法
- 被7整除的数的简易的判断方法
- PHP5与面向对象(学习中)
- IP地址漂移技术[转]