繁体   English   中英

ASP.NET到HTML5 localStorage

[英]ASP.NET to HTML5 localStorage

在ASP.NET(Web表单)中,我从SQL数据库中检索一组键/值对,以用于DropDownList。 该列表非常大(可以输入2000多个条目),并且在网站上的许多页面上使用了多次,并且我一直在研究在本地客户端上缓存这组数据以减少带宽的方法。 该列表不会经常更改,因此拥有一周或更长时间的缓存副本应该没问题。

我想知道使用HTML5本地存储存储此列表并从客户端存储填充DropDownList是否完全可行和/或可行。 如果在本地找不到数据,则继续在数据库中查询列表。

如果在选择框中有2000多个条目,则无论如何都不会发出任何声音。

看一下类似Select2的东西。 特别是“加载远程数据”示例。

http://ivaynberg.github.io/select2/

我参与编写了一些应用程序,这些应用程序定期来回推送数据,我们在Javascript中构建了一个API对象,以处理应要求从服务器提取的数据。

API模块请求数据并根据其成功状态采取措施。 如果您觉得可能需要扩展稍后返回的数据类型,则可以构建一个简单的API模块来使用,或者仅构建一个AJAX调用来提取下拉列表中的数据。

API接口的示例如下:

/** 
 * Parameter 1, string - Command Name for the server to interpret 
 * Parameter 2, object - Data that should be passed to the server (if necessary)
 * Parameter 3, string - the HTTP method to use: 'GET', 'POST', 'PUT' etc.
 * Parameter 4, function - the callback to fire once the response is received.
**/
api('CommandName', { key: 'value' }, 'METHOD', function(response) {
    if(response.success) {
         //Store data in localStorage here
    }
});

如上所述,您在网站的整个页面上多次使用数据。 因此,在JavaScript中,您将编写负载检查,以确定数据是否已存储在localStorage中,如果没有,则调用API进行填充。 这将确保客户端始终具有可用的数据。 可以这样完成:

//On Load
if(!localStorage.dropdown) {
    api('CommandName', { key: 'value' }, 'METHOD', function(response) {
        if(response.success) {
            localStorage.dropdown = response.data;
        }
    });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM