如何解决将扩展名从.ff更改为.ff.js可以提高速度?
好!我最近做了一个小框架,可以在顶部建立我的小型网页和项目。
今天,我正在检查许多有关加快速度的技巧的文章。我对提高xhr速度感兴趣。
我正在阅读,发现默认情况下通常会缓存一些文件扩展名,而其他文件扩展名则不会。
我在框架上使用filename.ff特殊扩展名,以了解访问资源时要查找的文件。
作为实例 当您点击此页面https://bugs.stringmanolo.ga/#projects/fastframework
中的快速框架链接时,将使用XHR从https://github.com/StringManolo/bugWriteups/blob/master/projects/fastframework/fastframework.ff下载https://bugs.stringmanolo.ga/#projects。我的问题是: 如果我将扩展名从fastframework.ff更改为fastframework.ff.js,该文件是否会被浏览器缓存,然后下载速度会更快?也可以离线工作吗?还是已经缓存?更改框架代码以使用.ff.js根本不会有所不同吗?
解决方法
我终于使用服务工作者和缓存API以更好的方式解决了它。 我让您在这里使用过的代码对您有所帮助,
ff.js(ff是ff = {}对象)
/*** Cache Service Workers Code */
ff.cache = {}
ff.cache.resources = [];
ff.cache.start = function(swName,ttl) {
let tl = 0;
tl = localStorage.cacheTTL;
if (+tl) {
const now = new Date();
if (now.getTime() > +localStorage.cacheTTL) {
localStorage.cacheTTL = 0;
caches.delete("cachev1").then(function() {
});
}
} else {
navigator.serviceWorker.register(swName,{
scope: './'
})
.then(function(reg) {
caches.open("cachev1")
.then(function(cache) {
cache.addAll(ff.cache.resources)
.then(function() {
localStorage.cacheTTL = +(new Date().getTime()) + +ttl;
});
});
})
.catch(function(err) {
});
}
};
ff.cache.clean = function() {
caches.delete("cachev1").then(function() {
});
};
/* End Cache Service Workers Code ***/
cache.js(这是服务人员拦截请求)
self.addEventListener('fetch',(e) => {
e.respondWith(caches.match(e.request).then((response) => {
if(response)
return response
else
return fetch(e.request)
}) )
})
main.js(这是index.html文件中包含的主文件)
ff.cache.resources = [
"./logs/dev/historylogs.ff","./blogEntries/xss/xss1.ff","./blogEntries/xss/w3schoolsxss1.ff","./blogEntries/csrf/w3schoolscsrf1.ff","./projects/fastframework/fastframework.ff","./projects/jex/jex.ff","./ff.js","./main.js","./main.css","./index.html","./resources/w3schoolspayload.png","./resources/w3schoolsxsslanscape.png","./resources/w3schoolsxss.png"];
ff.cache.start("./cache.js",104800000);
/* 604800000 milliseconds equals 1 week */
您可以在https://bugs.stringmanolo.ga/index.html中实时测试它,它是从github存储库托管的,以防您需要查看更多代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。