我有一个 React 应用程序,其中我正在向后端 API 执行提取请求。\n我正在尝试在 UI 端实现大量请求的缓存。
\n\n我能够在 Mozilla Firefox 中成功完成此操作,并且运行得非常好。\n但是 chrome 给我带来了困难。\n这是我试图实现的代码片段 -
\n\n fetch(URL, {\n signal: this.abortController.signal,\n cache: "default",\n headers: {\n "Cache-Control": "max-age=120"\n }\n })\n .then(response => return response.json())\n .catch(error => {\n if (error.name === "AbortError") {\n return;\n }\n this.setError(error);\n });\nRun Code Online (Sandbox Code Playgroud)\n\n我正在跟踪检查缓存的过程-
\n\n在检查 Firefox 的网络选项卡时,我可以看到“已传输”为“已缓存”,并且页面加载和一切都按预期工作有显着改进。
\n\n然而,在 Chrome 中,我仍然可以看到“大小”为“3.9 KB”,时间为“毫秒”。
\n\n我尝试了 - Chrome 是否忽略 Cache-Control: max-age?中提到的步骤 没有任何成功。
\n\n我还发现 - https://www.mnot.net/blog/2017/03/16/browser-caching …
我有一个.sql文件,我正在从中读取输入。假设文件包含以下输入。
Message Fruits Fruit="Apple",Color="Red",Taste="Sweet";
Message Flowers Flower="Rose",Color="Red";
Run Code Online (Sandbox Code Playgroud)
现在,我已经编写了一个perl脚本来从该文件生成哈希。
use strict;
use Data::Dumper;
if(open(MYFILE,"file.sql")){
my @stack;
my %hash;
push @stack,\%hash;
my @file = <MYFILE>;
foreach my $row(@file){
if($row =~ /Message /){
my %my_hash;
my @words = split(" ",$row);
my @sep_words = split(",",$words[2]);
foreach my $x(@sep_words){
my($key,$value) = split("=",$x);
$my_hash{$key} = $value;
}
push @stack,$stack[$#stack]->{$words[1]} = {%my_hash};
pop @stack;
}
}
print Dumper(\%hash);
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出。
$VAR1 = {
'Flowers' => {
'Flower' => '"Rose"',
'Color' => '"Red";'
},
'Fruits' => {
'Taste' …Run Code Online (Sandbox Code Playgroud)