firefox - 更少的 CSS 和本地存储问题

标签 firefox local-storage less

我正在使用 LESS CSS(更确切地说是 less.js),它似乎在幕后利用了 LocalStorage。我以前在本地运行我的应用程序时从未见过这样的错误,但现在我在每个页面显示时都会收到“已达到持久存储最大大小”,就在我的应用程序的唯一 .less 文件链接上方。

到目前为止,这只发生在 Firefox 12.0 上。

有什么办法可以解决这个问题吗?

PS:主要灵感来自Calculating usage of localStorage space ,这就是我最终所做的(这是基于 Prototype 并依赖于自定义的简单 Logger 类,但这应该很容易适应您的上下文):

"use strict";
var LocalStorageChecker = Class.create({
    testDummyKey: "__DUMMY_DATA_KEY__",
    maxIterations: 100,
    logger: new Logger("LocalStorageChecker"),
    analyzeStorage: function() {
        var result = false;
        if (Modernizr.localstorage && this._isLimitReached()) {  
            this._clear();
        }
        return result;
    },
    _isLimitReached: function() {
        var localStorage = window.localStorage;
        var count = 0;
        var limitIsReached = false;
        do {
            try {
                var previousEntry = localStorage.getItem(this.testDummyKey);
                var entry = (previousEntry == null ? "" : previousEntry) + "m";
                localStorage.setItem(this.testDummyKey, entry);
            }
            catch(e) {
                this.logger.debug("Limit exceeded after " + count + " iteration(s)");
                limitIsReached = true;
            }
        }
        while(!limitIsReached && count++ < this.maxIterations);
        localStorage.removeItem(this.testDummyKey);
        return limitIsReached;
    },
    _clear: function() {
        try {
            var localStorage = window.localStorage;
            localStorage.clear();
            this.logger.debug("Storage clear successfully performed");
        }
        catch(e) {
            this.logger.error("An error occurred during storage clear: ");
            this.logger.error(e);
        }
    }
});


document.observe("dom:loaded",function() {
    var checker = new LocalStorageChecker();
    checker.analyzeStorage();
});

P.P.S.:我还没有测量对 UI 的性能影响,但可以创建一个装饰器并仅每 X 分钟执行一次存储测试(例如,使用本地存储中的最后一次执行时间戳)。

最佳答案

这里是一个很好的资源,可以解决您遇到的错误。

http://www.sitepoint.com/building-web-pages-with-local-storage/#fbid=5fFWRXrnKjZ

提供了一些见解,即本地存储只有这么多空间,您可以在每个浏览器中将其最大化。请考虑从本地存储中删除一些数据来解决您的问题。

关于firefox - 更少的 CSS 和本地存储问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10609625/

相关文章:

firefox - 如何扩展Firefox 57中截断的console.log输出?

javascript - 使用javascript同时更新两个html文件

ruby-on-rails - 似乎无法使用 Rails 和 less 导入文件

node.js - 失败于 `&:extend(.clearfix all);`

css - 用更少的循环优化 css?

ruby-on-rails - Firefox 在下载时不显示 PDF 文件扩展名

css - Firefox 滚动条颜色变化

javascript - 将 LocalStorage 中的数据分配给数据 block (Angular2)

Javascript firefox 无法找到所有其他浏览器所做的值

ios - 如何在 iPhone 存储中隐藏 iOS 应用程序的文档和数据