用twebbrowser做了个浏览器。在这个浏览器上是屏蔽掉地址输入栏的。当这个浏览器一启动,就有一个网页显示,在这个网页上有很多网站的链接。
现在,我想问的是,当点击这些链接看到网页后,怎么样才能实现把这些网页存入缓存中,当下次再点击这些链接看网页时,就直接从缓存中读取,这样速度就相对快些了。
各位大侠,帮帮小弟。谢谢了
现在,我想问的是,当点击这些链接看到网页后,怎么样才能实现把这些网页存入缓存中,当下次再点击这些链接看网页时,就直接从缓存中读取,这样速度就相对快些了。
各位大侠,帮帮小弟。谢谢了
解决方案 »
- 寻蓝月、汤猪佬等群友
- 请想要c#程序的网友进来看看
- 菜鸟求救:刚刚下载了<xpMenu3.0>在DELPHI中不知道怎么安装使用,在线等待!
- 特急!!使用QuickReport时,第一页打印正常,第二页打印不正常
- 请问:为什么我升级了D7,用dbexpress连SQL2000数据库后,不能applayupdate(0)更新数据?
- 这样的查询结果,应该怎样写sql语句
- 请教:如果在窗体完全显示之前把该窗体SHOW出来,这样感觉速度会快一些。
- 如何统计string中含有几个汉字字符,几个英文字符?
- delphi image 问题
- 请问在打印报表是如何自动生成记录号?
- 有关线程同步问题的讨论和请教
- 本人在调用这段存储过程的时候出错,请帮我看看。谢了!
Indicates whether the Web browser gets its document from the local cache.
当flags为navNoReadFromCache 或 4 时不从缓存中找
当flags为navNoWriteToCache 或 8 时不将当前页放入缓存所以你根本不用操心
1、判断页面是否已经在缓存内,参考这个文章:
http://www.csdn.net/Develop/Read_Article.asp?Id=131112、如果不在,当然是直接打开了,webbrowser会自动缓存页面的
如果在缓存中,两种办法,一种是以查看硬盘上htm文件的方式直接调用硬盘中缓存的页面,这个不好。另外就是将webbrowser设置为离线方式,让webbrowser自己从缓存中取文件,设置离线方式的代码:function SetOffline:Boolean; //设定浏览器为离线状态
var
ConInfo:INTERNET_CONNECTED_INFO;
begin
ConInfo.dwConnectedState := INTERNET_STATE_DISCONNECTED_BY_USER;
ConInfo.dwFlags := ISO_FORCE_DISCONNECTED;
InternetSetOption(nil, INTERNET_OPTION_CONNECTED_STATE, @ConInfo, sizeof(ConInfo));
result:=True;
end;
记得要引用wininet
当打开浏览器点击链接时,先要做个判断,如果这个链接的网页在缓存里了,就直接读出来,没又的话,再去从网上down。down好后还是要从缓存读取,真时郁闷啊
///当执行这条语句时,它先做判断,如果这个链接的网页在缓存里了,就直接读出来,没有的话,再去从网上down(除非你用了参数navNoReadFromCache),down好后就将内容保存在缓存中(除非你用了参数navNoWriteToCache),并显示出来,下次再访问时就直接从缓存中取。
webbrower1.navigate('url');
webbrower1.offline:=false;