我想在Electron(atom-shell)中清除缓存数据。我没有 找到任何类似gui.App.clearCache()的api(node-webkit api来清除缓存 数据)在电子。如果您发现任何api或任何其他方式,请让我 知道。评论表示赞赏。
答案 0 :(得分:29)
Electron将它的缓存存储在这些文件夹中:
视窗:
C:\Users\<user>\AppData\Roaming\<yourAppName>\Cache
Linux操作系统:
/home/<user>/.config/<yourAppName>/Cache
OS X:
/Users/<user>/Library/Application Support/<yourAppName>/Cache
因此删除这些文件夹也可以帮助您。 当然这是一次性解决方案;-)
答案 1 :(得分:4)
如果您要清除以前登录会话的任何残留,请最好使用此功能:
loginWindow.webContents.session.clearStorageData()
答案 2 :(得分:2)
我们正在我们的应用程序中使用它...
<Viewbox Width="auto" Stretch="Fill">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="7*"/>
<RowDefinition Height="18*"/>
</Grid.RowDefinitions>
<TextBlock x:Name="AppGreeting" Text="Good Morning, User" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,5,0,4.6" FontWeight="Bold" Grid.RowSpan="2"/>
<TextBlock x:Name="WindowName" Text="Home" HorizontalAlignment="Right" Margin="0,5,4.6,4.6" Grid.RowSpan="2"/>
</Grid>
</Viewbox>
电子7的更新:
const { app, session } = require('electron');
// ...
session.defaultSession.clearStorageData(null, (error: any) => {
// in our case we need to restart the application
// app.relaunch();
// app.exit();
});
答案 3 :(得分:1)
var remote = require('remote'); var win = remote.getCurrentWindow(); win.WebContents.session.cookies.get(details, callback) // getting cookies win.WebContents.session.cookies.remove(details, callback) //deleting cookies
了解更多信息:http://electron.atom.io/docs/v0.29.0/api/browser-window/
答案 4 :(得分:0)
在Windows电子版v10.1.5上尝试了@thegnuu和library(ggplot2)
#Code
game_count$Freq <- game_count$sum/game_count$number
#Plot
ggplot(game_count,aes(x=1:nrow(game_count),y=Freq))+
geom_col(fill='cyan3',color='black')+
xlab('')
的答案。
选项1:
直接删除缓存路径session.defaultSession.clearCache();
:
C:\Users\<username>\AppData\Roaming\<appname>\Cache
选项2 :它还会清除相同的_deleteFolder(dirPath) {
const fs = require('fs');
// delete directory recursively
try {
fs.rmdirSync(dirPath, {recursive: true});
this._logger.info(`cache clean: ${dirPath} is deleted!`);
} catch (e) {
this._logger.error(`cache clean: could not delete ${dirPath}!`, e);
}
}
目录
C:\Users\<username>\AppData\Roaming\<appname>\Cache
选项1的问题:
const {session} = require('electron');
session.defaultSession.clearCache();
获取了日志,但未删除缓存目录。里面还有5个文件。this._logger.info(`cache clean: ${dirPath} is deleted!`);
,得到了相同的结果。在选项2上,我没有遇到任何问题。我想这是最好的选择。
奖金:fs.rmdir
清除session.defaultSession.clearStorageData();
目录
答案 5 :(得分:-1)
你可以尝试mainWindow.webContents.clearHistory();
或删除应用程序缓存文件夹中的内容(将在应用程序运行时重新创建)。
您可以使用app.getPath('userData') + '/Cache'
答案 6 :(得分:-1)
在开发时,请在开发人员工具中转到标签页应用程序,并清除存储和清除站点数据