草庐IT

localStorage封装

全部标签

javascript - 为什么我要在 jQuery(function ($) { }); 中封装一个 jQuery 函数?

我遇到了一段代码,看起来像这样:jQuery(function($){$('#saySomething').click(function(){alert('something');});});我不太明白。为什么我不能简单地这样做:$('#saySomething').click(function(){alert('saySomething');}); 最佳答案 jQuery(function($){...});是以下内容的简写形式:jQuery(document).ready(function($){...});如果您不等待文档准备

javascript - 在 localStorage 中导出数据以供以后重新导入

我想从我的localStorage中导出一些项目以将其保存在外部,但以一种格式以便我可以稍后再次导入它。我的尝试是编写稍后可以粘贴到文本区域中的可执行代码。然后该文本的值将简单地被eval()ed。问题:存储在localStorage中的数据被存储为vardata=[];data.push('sampledata');data.push({sample:'object'});localStorage.setItem('varname',data);所以它包含各种我不喜欢的字符,比如'、"等等到目前为止,我的(无效的)解决方案是:varcontainer=$('#localDataCon

javascript - 关于JavaScript中闭包/封装效率的问题

我是JavaScript的新手,如果这是一个愚蠢的问题,请多多包涵。假设我有一个看起来像这样的“类”:varobj=function(){varval;return{setVal:function(newVal){val=newVal;},getVal:function(){returnval;}};};假设我的语法是正确的,这定义了一个具有名为“值”的“私有(private)”属性的类,以及设置/获取该属性的方法。现在,我将从这个类创建两个对象:varmyObj=obj();varyourObj=obj();这是否为每个对象创建一个单独的setVal()和getVal()方法?如果不

javascript - 将功能封装在 jQuery 插件或 vanilla JavaScript 函数中哪个更好?

假设我有一些JavaScript可以修改DOM,也许可以隐藏/显示表单字段或类似的东西,假设我想在多个页面上执行此任务,但每个页面只执行一次或两次。将此功能封装到jQuery插件或vanillaJavaScript函数中哪个更好?本质上,是这样的:jQuery.fn.toggleFormInput=function(){//StunningJavaScript/jQuerymagichere}比这更好或更差:functiontoggleFormInput(){//StunningJavaScript/jQuerymagichere} 最佳答案

javascript - JS和CSS存放在localstorage有什么意义?

在阅读StoyanStefanov的webperformancedaybook时我遇到过以下情况:GoogleandBingstoreJavaScriptandCSSinlocalStoragetoimprovetheirmobilesiteperformance和link到带有描述的博客。尽管如此,我还是读了它(并且有使用localstorage的合理经验),我仍然无法理解这种行为的意义所在。在我看来,浏览器已经完成了缓存CSS和JS的工作,绝对没有必要将它们存储在本地存储中。谁能用简单的英文解释一下这是什么原因?P.S.一开始我认为这可能与移动浏览器的缓存大小有关,但当我检查时发现

javascript - 我应该将功能 block 封装在匿名 JavaScript 函数中吗?

我的直觉是将代码块封装在像这样的匿名函数中是个好主意:(function(){varaVar;aVar.func=function(){alert('ronk');};aVar.mem=5;})();因为我不再需要aVar,所以我假设垃圾收集器将在超出范围时删除aVar。这是正确的吗?或者解释器是否足够聪明,可以看到我不再使用该变量并立即清理它?是否有任何理由,例如风格或可读性,我应该不以这种方式使用匿名函数?另外,如果我给函数命名,像这样:varoperations=function(){varaVar;aVar.func=function(){alert('ronk');};aVa

javascript - IE11 中的 localStorage 访问被拒绝,但仅在桌面模式下(不在地铁模式下)

所以我有一个在Adob​​eAEM5.6.1上运行的网站,它检查localStorage是否可以访问。对我来说,问题是当我从桌面版IE11(在运行Windows8.1Pro的HPElitePad900上)访问该站点时,它因“拒绝访问”而中断。在同一台设备上,它可以正常使用IE11的地铁模式版本。它在至少两台其他计算机上也能正常工作,一台nativePC,一台virtualbox:ed在我的mac上。我知道您在运行本地html文件时不允许访问localStorage,但这是在我们的服务器上运行的。非功能性浏览器的访问权限/安全设置有何不同?有没有办法用javascript以编程方式检查这

javascript - 为什么 localStorage 不接受我的对象?

这个问题在这里已经有了答案:HowtostoreobjectsinHTML5localStorage/sessionStorage(24个答案)关闭5年前。我需要在localstorage中存储一个对象,如下例所示。我需要能够检索此对象并对其进行编辑,然后将其保存回localStorage以备下次使用。vardata={lastEdit:"September",expires:"December",records:[{arrives:"12:45",departs:"12:51"},{arrives:"13:03",departs:"13:04"}]};我试过了,但它说“未定义”:lo

javascript - 如何用任何东西替换 Backbone.sync,甚至没有 localStorage?

如何将Backbone.sync替换为什么都不做?我的应用程序有一个“提交”按钮,它会为我执行AJAXPOST,所以我不想使用Backbone.sync提供的自动魔术默认行为。我也不想使用BackboneLocalStorage适配器,因为我正试图使该站点与IE6和7兼容。也就是说,我几乎只是希望Backbone除了将记录保留在JS内存中(类似于Spine.js)之外什么也不做。这可能吗? 最佳答案 最简单也可能是最好的方法不是替换Backbone.Sync,而是简单地忽略它。以下是您不想调用的方法:集合:获取创建模型:获取保存摧毁

javascript - 如何在 JavaScript localStorage 中存储(字典)对象?

我有一本非常简单的字典。varmeta={'foo':'1','moo':'2'}我想将它存储在本地存储中并检索它。window.localStorage.setItem("meta",meta);varmeta1=window.localStorage.getItem("meta");alert(meta1['foo']);以上是行不通的。我该怎么做? 最佳答案 localStorage将其输入转换为字符串,因此您必须将对象转换为JSON字符串,然后返回:window.localStorage.setItem("meta",JSO