出于某种原因,当我在加载弹出窗口之前点击我的扩展程序时,我的延迟非常小。
弹出窗口前显示1-2秒的呃逆,而我所有的其他扩展立即显示弹出的HTML。
正如你在上面看到的,当我点击弹出窗口时,甚至会出现加载光标动画,而其他扩展程序从来不会发生。
这是我的popup html:
<!doctype html> < html> < head> < script type =text / javascriptsrc =popup.js>< / script> < title>添加要阻止的网站< / title> < / head> < body> < form id =addWebsiteForm> 网站地址:< input type =textid =websiteAddress>< br> < input type =submitvalue =添加网站> < / form> < / body> < / html>我的popup.js
var addWebsiteForm; document.addEventListener('DOMContentLoaded',function(){ addWebsiteForm = document.getElementById(addWebsiteForm); addWebsiteForm.addEventListener('submit',addWebsite); }); 函数addWebsite(event){ event.preventDefault(); var websiteAddressInput = document.getElementById(websiteAddress); var websiteAddress = websiteAddressInput.value; var storedWebsites; chrome.storage.local.get('websites',function(objects){ if(!objects.websites){ storedWebsites = []; } else { storedWebsites = objects.websites; } storedWebsites.push({'address':websiteAddress}); chrome.storage .local.set({'websites':storedWebsites}); addWebsiteForm.reset(); websiteAddressInput.focus(); }); }我的清单:
{manifest_version:2, name:Quizlet Extension,description:Go通过你的flashcards在移动到网站之前,version:1.0, options_page:options.html, browser_action :{default_icon:icon.png,default_popup:popup.html}, permissions:[存储}任何想法?
解决方案我认为您可以尝试将背景 params添加到清单:
{ ... background:{page:background.html,persistent:true }, ... }当然,需要在扩展文件夹中添加一个简单的html文件:
<!DOCTYPE html> < html> < head> < meta charset =utf-8/> < / head> < body> < / body> < / html>现在打开Chrome扩展程序会很快没有不延迟 $ b
后台页面将始终运行 ,它总是用于显示通知。所以我们可以利用这个功能,不需要重新打开延迟,这是延迟的主要原因。
For some reason, I have a very small delay when I click my extension before the popup is loaded.
It's a 1-2 second hiccup before the popup displays, while all my other extensions display the popup html immediately.
As you can see above, there is even the loading cursor animation when I click the popup, which never happens for the other extensions.
Here is my popup html:
<!doctype html> <html> <head> <script type="text/javascript" src="popup.js"></script> <title>Add a website to block</title> </head> <body> <form id="addWebsiteForm"> Website Address: <input type="text" id="websiteAddress"><br> <input type="submit" value="Add Website"> </form> </body> </html>My popup.js
var addWebsiteForm; document.addEventListener('DOMContentLoaded', function(){ addWebsiteForm = document.getElementById("addWebsiteForm"); addWebsiteForm.addEventListener('submit', addWebsite); }); function addWebsite(event) { event.preventDefault(); var websiteAddressInput = document.getElementById("websiteAddress"); var websiteAddress = websiteAddressInput.value; var storedWebsites; chrome.storage.local.get('websites', function(objects) { if (!objects.websites) { storedWebsites = []; } else { storedWebsites = objects.websites; } storedWebsites.push({'address':websiteAddress}); chrome.storage.local.set({'websites':storedWebsites}); addWebsiteForm.reset(); websiteAddressInput.focus(); }); }And my manifest:
{ "manifest_version": 2, "name": "Quizlet Extension", "description": "Go through your flashcards before moving onto a website", "version": "1.0", "options_page":"options.html", "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "permissions": [ "storage" ] }Any ideas?
解决方案I think you can try to add the background params to the manifest :
{ ... "background": { "page": "background.html", "persistent": true }, ... }Of course, need add a simple html file to the extension folder :
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> </body> </html>Now open the Chrome Extension will be quickly without no delay.
The background page will be run all the time, it is always used to show notification.So we can make use of this feature, need't reopen the Extension which is the main reason of delay
更多推荐
轻微的加载延迟与铬扩展弹出
发布评论