c# - 典型的基于浏览器的 Web 解决方案可以利用缓存吗?

标签 c# php asp.net .net caching

假设一个典型的 web 应用程序可以用“服务器端”语言实现,例如 ASP.NET 集合或 PHP,浏览器提供最终用户交互,是否可以使用持久的本地缓存?

例如,以存储数千条员工记录的简单集中式数据库为例。只要此缓存不会过时,浏览器拥有适当数据的本地副本会更有效。这将如何实现?据我所知,cookie 是暴露的浏览器内存的扩展,严格的域策略会阻止与硬盘驱动器的任何交互。

我是从 PHP 或 ASPX Web 表单应用程序(超文本应用程序?)的角度考虑的,我认为这是无状态的,所以我很难理解如何实现这一点。其他 .NET 解决方案(例如 .NET MVC 或 WCF)是否会提供任何优势?

我应该指出,这没有考虑 Java、Flash、Silverlight 等小程序技术。

最佳答案

HTML5 localStorage 和 sessionStorage 最多可以容纳 5 MB 或更多,具体取决于域的浏览器。

HTML5 ApplicationCache 特别适用于您想要的东西,因为您可以指定一个 list ,检查每个请求的修改但每次只访问该文件,而除非指示这样做,否则不会请求您的缓存资源,从而节省大量带宽。如果您通过服务器端动态编程提供 list 文件,则可以通过在获取新数据时简单地更改 list 文件时间戳或文档中的注释来轻松实现缓存策略。 list 文件可以根据用户的动态提供cookie,因此如果您需要划分数据,您实际上可以拥有每个用户拥有的数据集。

您必须使用 JSON.stringify 和 jQuery.parseJSON 在 JavaScript 客户端上进行大量开发,以使用一些框架(例如 knockout.js 进行数据绑定(bind)等)进行序列化和反序列化。我在做这些事情方面有丰富的经验,并且使用过考虑服务器端这么多。现在我只看到服务器端允许我对 JSON 数据进行增删改查,因为这是我在开发 Web 应用程序时使用它的目的。

关于c# - 典型的基于浏览器的 Web 解决方案可以利用缓存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15649167/

相关文章:

php - JS 微时间 vs php 微时间

php - 从php中的mysql查询结果中获取列信息?

c# - 为什么在 Javascript 中附加事件处理程序会阻止我的服务器端事件触发?

c# - 将 L2S DataContext 传递到 ViewModel 构造函数干净的 MVVM 中吗?

php - 结果在 MySQL 前端给出 undefined

javascript - 如何在回发事件后删除目标 ='_blank'?

Chrome 中的 ASP.NET 边距问题

mysql - 尝试删除外键时,MYSQL ASP.NET Core Angular 项目中的 Entity Framework 失败,并在 CONSTRAINT 附近的语法中出现 MySqlException 错误

c# - 将 c# 空合并运算符与 int 一起使用

c# - 添加/删除项目资源时 Visual Studio 2015 挂起