首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏hrscy

    iOS离线缓存

    ,首先从沙盒加载缓存的数据,或者当app未联网的时候,从沙盒中加载之前缓存的旧数据。 离线数据的方法选择 plist文件 Document路径 数据库 由于保存的是大批量数据,且会不停的刷新新数据,因此应该选择数据库来存储。使用数据库可以快速地进行数据的读取操作。 1.设计思路 如下图,说明了离线缓存的流程: ? 离线缓存 当第一次打开app的时候,把从服务器获取到的数据保存到沙盒中; 当下一次进入app的时候,首先从沙盒中找,如果沙盒中保存了之前的数据,则显示沙盒中的数据; 如果没有网络,直接加载保存到沙盒中的数据 示例 下面使用一个示例程序来介绍离线缓存。示例程序用到的框架有FMDB,SDWebImage,AFNetworking,数据是由聚合数据提供的开放API。

    2K20发布于 2018-08-30
  • 来自专栏cnblogs

    http缓存离线缓存

    一、http协议实现缓存 1. 缓存头部 通用缓存、条件缓存缓存控制三大类 头部名称 说明 请求/响应 通用缓存头部 控制客户端是否向服务器发送请求或者是服务端响应请求 cache-control 用于随报文传递的缓存提示 pragma If-Unmodified-Since:不会响应412的情况 last-Modified值匹配成功 服务器需要响应2XX或412之外的状态码 请求发送过来的时间格式不对 二、浏览器离线缓存 实现离线缓存的步骤 # 禁止缓存的文件 network: # 回退文件(页面无法访问时回退的页面) fallback: 事件与状态        5.1 状态 状态值 说明 0 未缓存 1 空闲(缓存为最新状态) 2 ,浏览器直接清理缓存是无效的 6.3 修改main.appcache文件任何内容,都会导致离线缓存重新加载,包含注释信 6.4 引入main.appcache文件的html文件,会直接被离线缓存 6.5

    1.8K70发布于 2018-01-17
  • 来自专栏向治洪

    android离线缓存技术

    离线缓存是指在有网络的状态下将从服务器获取的网络数据,如Json 数据缓存到本地,在断网的状态下启动APP时读取本地缓存数据显示在界面上,常用的APP(网易新闻、知乎等等)都是支持离线缓存的,这样带来了更好的用户体验 如果能够在调用网络接口后自动缓存返回的Json数据,下次在断网状态下调用这个接口获取到缓存的Json数据的话,那该多好呢?Volley做到了这一点。 ,Volley只缓存了接口路径,并没有缓存接口的传入参数,因此如果做分页查询的话,使用此方法是不妥的。  2.在测试过程中,依然发现有的时候获取不到缓存数据,有的时候却可以获取到。对获取缓存的代码延迟加载能够有效解决这个问题。  3.如果考虑到缓存的过期策略,可以使用更好的ASimpleCache框架辅助开发。对缓存有更高要求的APP,依然应该使用文件缓存或数据库缓存。 源代码下载

    2.4K90发布于 2018-02-01
  • 来自专栏云计算linux

    HTMT 离线缓存机制

    byWHATWG

    </body> </html> 通过反复切换Apache 2.2服务器,可以看到离线存储的效果 注意如果缓存文件不存在也不会成功。切记!!!

17000编辑于 2024-12-17
  • 来自专栏ShaoYL

    iOS---数据离线缓存

    离线缓存 为了用户的体验,不需要每次打开App都加载新数据,或者重新请求数据,因此需要把每次浏览的数据保存起来,当下次打开软件时,首先从沙盒中加载数据;或者当软件未联网时,也只能从沙盒中加载旧数据。 离线数据的方法选择 1.plist文件 2.Document路径 3.数据库 由于保存的是大批量数据,且会不停的刷新新数据,因此应该选择数据库来存储。 离线缓存的思路 当第一次打开应用程序时,把界面加载好的数据保存到沙盒中 当下一次进入应用程序时,首先从沙盒中找 如果没有网络,直接加载上次保存的数据,或者没有比较新的数据也从沙盒中加载数据。 需要缓存的数据如何保存 sqlite3 框架FMDB 操作数据库的工具类 static FMDatabase *_db; + (void)initialize { // 1.打开数据库 INSERT INTO t_status(status, idstr) VALUES (%@, %@);", statusData, status[@"idstr"]]; } } 从数据库中取出缓存数据

    1.4K120发布于 2018-05-11
  • 来自专栏IMWeb前端团队

    PWA之离线缓存(一)

    离线缓存 :通过Service Worker使得 Web App 也可以做到像 Native App 那样可以离线使用、消息推送的功能。 利用它,我们可以拦截页面请求,缓存文件。 setTimeout(() => { const img = new Image(); img.src = "/teacher/1@2x_d3458ef8fd9ebd0f7fe4ab1f886b572f.gif 如果都缓存成功,那么OK,service worker安装成功。 这里缓存资源时, 定义了一个缓存名字static-v1 , 打开这个缓存,将图片文件添加进去。 离线资源更新 1、如果业务的静态资源更新了, 需要修改sw.js文件,一个B的修改都会引起浏览器的重新下载sw文件, 然后触发install , 装载新的离线资源。

    2.4K21发布于 2019-12-03
  • 来自专栏YuanXin

    Service Worker离线缓存实战

    背景介绍 最近实战了 Service Worker(以下简称“sw”)来进行网站缓存,以实现离线状态下,网站仍然可以正常使用。 尤其对于个人博客这种以内容为主体的静态网站,离线访问和缓存优化尤其重要;并且 Ajax 交互较少,离线访问和缓存优化的实现壁垒因此较低。 上方的代码顺便清理了旧版本的缓存。 资源拦截 在代码的最后,需要监听 fetch 事件,并且进行拦截。如果命中,返回缓存;如果未命中,放通请求,并且将请求后的资源缓存下来。 可以看到资源都通过 ServiceWorker 缓存加载进来了。 现在,我们打开离线模式, 离线模式下照样可以访问: 最后,我们修改一下 html 的代码,并且更新一下 sw.js 中标识缓存版本的变量 VERSION: 在第 2 次刷新后,通过上图可以看到,缓存版本内容已更新到

    2K10发布于 2020-04-20
  • 来自专栏全栈程序员必看

    关于离线缓存Application Cache 使用 manifest文件缓存

    ,浏览器下载资源文件会先放在一个临时的缓存中,如果有任何一个资源文件下载失败,浏览器将停止其他缓存资源的下载,并清除临时缓存。 如果所有资源文件都被成功下载,浏览器将会把这些资源文件以及引用manifest文件的HTML文档移动到永久离线缓存中 满满的都是坑 一些小坑 需要注意的是manifest文件放在服务器上,MIME类型必须是 manifest文件的HTML文档一并被移动到永久离线缓存中。 ),浏览器将直接从本地离线缓存中获取资源文件。 ,但依旧会从网络上加载,而iframe的解答方法也是2011~2012年左右提出的,后来就没有相关文章了,估计已经彻底失效了 Application主要是为了构建离线缓存,使得页面在离线模式下也能浏览。

    3K20编辑于 2022-07-27
  • 来自专栏前端大白专栏

    HTML5离线缓存技术

    原理和环境 如上面提到的HTML5的离线存储是基于一个新建的.appcache文件的,通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。 之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。 就像cookie一样,html5的离线存储也需要服务器环境。 链接: http://pan.baidu.com/s/1jG86UV0 密码: ja9h 解析清单 在开始之前要先了解下manifest(即.appcache文件),上面的解析清单要怎么写。 下面的 NETWORK 小节规定文件 "login.asp" 永远不会被缓存,且离线时是不可用的: NETWORK: login.asp 可以使用星号来指示所有其他资源/文件都需要因特网连接: NETWORK 注意事项 站点离线存储的容量限制是5M 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存 引用manifest的html必须与manifest

    4.4K70发布于 2018-06-15
  • 来自专栏前端博客

    html5离线缓存manifest详解

    HTML5引入了应用程序缓存(Application Cache),通过创建manifest文件可以轻松地创建Web应用的离线版本,使Web应用可以在没有网络的时候任然可以访问。 manifest文件主要定义需要缓存的文件,支持manifest的浏览器将按照manifest文件的规则把文件保存在本地,这样在没有网络的时候就可以从本地读取缓存文件。 Manifest的优点离线浏览 – 用户可在应用离线时使用它们提升速度 – 已缓存资源加载得更快减少服务器负载 – 浏览器将只从服务器下载更新过或更改过的资源。 对于manifest文件进行缓存的时候需要十分小心,因为可能出现一种情况就是你对manifest文件进行了更新,但是http的缓存规则告诉浏览器本地缓存的manifest文件还没过期,这个情况下浏览器还是使用原来的 /en-US/docs/Web/HTML/Using_the_application_cachehttp://diveintohtml5.info/offline.html转载本站文章《html5离线缓存

    3.1K31编辑于 2023-05-07
  • 来自专栏ascii0x03的安全笔记

    HTML5离线缓存攻击测试

    正常访问页面如下图所示,在离线时也能够正常刷新出来。 ? 攻击者由安装有XAMPP服务器的桥接虚拟机表示,IP为192.168.1.154。 通过两次更新manifest文件,让用户缓存恶意页面并使其manifest文件与合法网站保持一致,如图所示。 ? 通过Wireshark抓包可以看到,浏览器仅仅请求了demo_html.appcache,离线缓存攻击成功。注意在实验时需要排除浏览器本身缓存的影响,仅仅刷新页面会收到服务器返回的304响应。 由于时间有限,并没有用爬虫去找使用了HTML5离线缓存的网站,仅仅做了这种攻击的验证实验,若有大家可以推荐几个来测试。 主页htm: <! p id="timePara"><button onclick="getDateTime()">提交</button>

    这是攻击者的页面,点击出现hacked


    离线的状态下重新载入这个页面

    2.1K90发布于 2018-04-12
  • 来自专栏王二麻子IT技术交流园地

    H5的离线缓存技术

    离线存储可以将站点的一些文件存储在本地,它是浏览器自己的一种机制,将需要的文件缓存下来在没有网络的时候可以访问到缓存的对应的站点页面,包括html,js,css,img等等文件在有网络的时候,浏览器也会优先使用已离线存储的文件 这跟HTTP的缓存使用策略是不同的。 资源的缓存可以带来更好的用户体验,当用户使用自己的流量上网时,本地缓存不仅可以提高用户访问速度,而且大大节约用户的使用流量。 HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源;把需要离线存储在本地的文件列在一个manifest配置文件中。 Manifest 的特点 离线浏览:即当网络断开时,可以继续访问你的页面。 访问速度快:将文件缓存到本地,不需每次都从网络上请求。 html5中引入了js操作离线缓存的方法,可以通过js代码手动更新本地缓存

    1.3K20编辑于 2023-07-18
  • 来自专栏DotNet NB && CloudNative

    .NET 9 混合缓存:多级缓存的未来

    缓存一直是构建高性能且可扩展应用程序的关键组件。在.NET 9 中,微软推出了混合缓存(Hybrid Cache),这是一种革命性的缓存方式,它弥合了内存缓存和分布式缓存之间的差距。 .NET 9 中的混合缓存结合了内存缓存(快速的本地访问)和分布式缓存(持久性以及跨服务器的共享状态)的优势。 ###.NET 9 中混合缓存的优势 性能优化:通过利用内存缓存来处理热点数据,减少对数据库的访问以及网络延迟。 成本效益:通过优化数据存储和检索机制,最大限度地降低云基础设施成本。 设置混合缓存 先决条件 你的机器上已安装.NET 9 SDK。 有一个需要使用缓存的项目(例如 ASP.NET Core 应用程序)。 Microsoft.Extensions.Caching.StackExchangeRedis dotnet add package Microsoft.Extensions.Caching.Memory 在.NET 9

    54100编辑于 2025-02-26
  • 来自专栏ascii0x03的安全笔记

    HTML5离线缓存攻击测试(二)

    经过昨天的测试,发现使用离线缓存的网站会被攻击。但是,不使用离线缓存的网站就真的不会受到这样的攻击么? (很郁闷相同的操作为啥有时候结果不一样,不过大部分还是造成了离线缓存攻击的效果。) 再次请求时抓包如下图,发现请求appcache文件后,尽管百度返回了302的错误页,但是浏览器没有跳转,仍然保持了离线缓存的页面,实现了缓存中毒的效果。 不知道使用https进行离线缓存攻击会不会成功。 ? 除了百度和支付宝,还用网易的126.com做了实验。 个人认为,对于类似百度网站这样的服务器设置,会导致缓存攻击成功,感觉是浏览器实现时的一个bug。如果支付宝https能被离线缓存攻击,那么危害性还是很大的。

    2.3K60发布于 2018-04-12
  • 来自专栏DotNet NB && CloudNative

    .NET 9 新增 多级缓存 HybridCache

    HybridCache是什么 在 .NET 9 中,Microsoft 将 HybridCache 带入了框架体系。 HybridCache 是一种新的缓存模型,设计用于封装本地缓存和分布式缓存,使用者无需担心选择缓存类型,从而优化性能和维护效率。 = new List<string> { "tag1" }; await _cache.RemoveByTagAsync(tags); return true; } 小结 .NET 9 的 HybridCache 提供了一种便捷且高效的缓存解决方案,将本地缓存和分布式缓存无缝结合,为开发者简化了缓存逻辑,同时提供了更多高级功能,如标签管理和选项约束。 如果你正在使用 .NET 9,尝试将 HybridCache 应用于你的项目中,体验其高效与简洁! 需要注意的是,HybridCache仍处于preview阶段。

    33100编辑于 2025-02-18
  • 来自专栏ChenYFanの小窝

    不只是离线缓存! - 论如何善用ServiceWorker

    离线访问可达性】。 实际上,SW确实是PWA的核心与灵魂,但SW在PWA中起的主要作用是缓存文件,提供给离线访问。并没有完整地发挥出SW的巧妙用法。 let cachelist = []; cachelist里面填写的是预缓存网址,例如在离线时返回的错误页面。 因此,对于博客的缓存,我们要保证用户每次获取都是最新的版本,但也要保证用户在离线时能看到最后一个版本的内容。 因此,针对博客来说,策略应该是先获取最新内容,然后更新本地缓存,最后返回最新内容;离线的时候,尝试访问最新内容会回退到缓存,如果缓存也没有,就回退到错误页面。

    4.4K21编辑于 2022-01-18
  • 来自专栏PHP在线

    PHP中9缓存技术总结

    ();****将缓存内容写入html文件*****Ob_end_clean(); 2、页面部分缓存 该 种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于 ; 4、查询缓存 其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示 ; 按时间变更进行缓存 其 实,这一条不是真正的缓存方式;上面的2、3、4的缓存技术一般都用到了时间变更判断;就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的 访问才会先取缓存文件的内容, 但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时 更新一次; 5、按内容变更进行缓存 这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时 max_input_time = 600 ; 每个PHP页面接收数据所需的最大时间,默认60 memory_limit = 128M ; 每个PHP页面所吃掉的最大内存,默认8M 9

    1.9K50发布于 2018-03-08
  • 来自专栏python3

    3-9 读写缓存流 ——Buffered

    3-5-3 读写缓存流 ——BufferedStream类 类BufferedStream就是给另一流上的读写操作添加一个缓冲区。缓冲区是内存中的字节块,用于缓存数据,从而减少对操作系统的调用次数。 案例学习:通过缓冲区交换数据 本案例您将学习到:如何通过使用缓存流的来读写文件。

    90910发布于 2020-01-08
  • 来自专栏PHP在线

    PHP中9缓存技术总结

    ();****将缓存内容写入html文件*****Ob_end_clean(); 2、页面部分缓存 该 种方式,是将一个页面中不经常变的部分进行静态缓存,而经常变化的块不缓存,最后组装在一起显示;可以使用类似于 ; 4、查询缓存 其实这跟数据缓存是一个思路,就是根据查询语句来缓存;将查询得到的数据缓存在一个文件中,下次遇到相同的查询时,就直接先从这个文件里面调数据,不会再去查数据库;但此处的缓存文件名可能就需要以查询语句为基点来建立唯一标示 ; 按时间变更进行缓存 其 实,这一条不是真正的缓存方式;上面的2、3、4的缓存技术一般都用到了时间变更判断;就是对于缓存文件您需要设一个有效时间,在这个有效时间内,相同的 访问才会先取缓存文件的内容, 但是超过设定的缓存时间,就需要重新从数据库中获取数据,并生产最新的缓存文件;比如,我将我们商城的首页就是设置2个小时 更新一次; 5、按内容变更进行缓存 这个也并非独立的缓存技术,需结合着用;就是当数据库内容被修改时 30秒 max_input_time =600;每个PHP页面接收数据所需的最大时间,默认60 memory_limit =128M;每个PHP页面所吃掉的最大内存,默认8M 9

    2K40发布于 2018-03-08
  • 来自专栏Web大前端

    Web Workers与Service Workers:后台处理与离线缓存

    Web Workers 和 Service Workers 是两种在Web开发中处理后台任务和离线缓存的重要技术。它们在工作原理和用途上有显著区别。 Service Workers 是一种更高级的机制,主要用于离线缓存、网络请求拦截和推送通知。 高级 Service Worker 功能除了基本的离线缓存,Service Workers 还支持一些高级功能,如网络优先策略、动态缓存更新和推送通知。1. Web Workers 和 Service Workers 提供了强大的后台处理和离线缓存能力,但正确使用它们需要对Web开发有深入理解。 例如,Service Workers 可以负责离线缓存,而 Web Workers 可以处理缓存中的数据。

    1.2K10编辑于 2024-06-21
  • 领券