【问题标题】:how to clear cache using javascript when starting Offline application启动离线应用程序时如何使用javascript清除缓存
【发布时间】:2016-07-12 02:52:41
【问题描述】:

我需要使用 Javascript 清除缓存的帮助,是否可以使用 Javascript 清除缓存?

我使用 Javascript 和 Node WebKit 开发了一个离线 Chrome 应用程序。使用此应用程序时,缓存大小每天都在增加。

所以我想在启动应用程序时从 AppData/Local/MyAPP.1.0 中删除缓存目录或清除缓存。

请帮助我使用 Javascript 清除缓存(相关解决方案)。

如果您需要这方面的任何信息,请告诉我。

提前致谢。

【问题讨论】:

  • 请添加代码以显示您的进度并帮助我们查明您的问题

标签: javascript jquery caching node-webkit appdata


【解决方案1】:

我总是禁用磁盘缓存,因为我发现它会减慢一切;即使在我编写的浏览器中,所以如果你想禁用它,这也意味着不会有任何垃圾需要清理,请在 package.json 中使用此设置:

 "chromium-args": "--disk-cache-dir=W:/abc --media-cache-dir=W:/abc --disk-cache-size=1 --media-cache-size=1",

注意:以上是不存在用于终止缓存的 DUMMY 驱动器/路径。

【讨论】:

    【解决方案2】:

    使用此递归函数删除 AppData/Local/{MyAPP.1.0}/ 中的所有文件

    deleteFolderRecursive:function(path) {        
        var fs = require("fs");
        if( fs.existsSync(path) ) {
            try{
                fs.readdirSync(path).forEach(function(file) {
                    var curPath = path + "/" + file;
                    if(fs.statSync(curPath).isDirectory()) { 
                        try{
                            deleteFolderRecursive(curPath);
                        }catch(e){
                            console.log(e);
                        }
                    } else {
                        try{
                            fs.unlinkSync(curPath);
                        }catch(e){
                            console.log(e);
                        }
                    }
                });
                fs.rmdirSync(path);
            }catch(e){
                console.log(e);
            }
        }
    }
    

    使用获取 AppData 文件夹路径

    var path = require("nw.gui").App.dataPath;
    

    使用获取 AppData 文件夹路径

    deleteFolderRecursive(path);
    

    【讨论】:

      【解决方案3】:

      试试这个,可能有用

      require("nw.gui").App.clearCache();
      

      【讨论】:

      • 你现在可以做nw.App.clearCache();require('nw.gui') 部分仅在低于 0.13.0 的版本上需要。
      最近更新 更多