Я написал скрипт Greasemonkey, который запускается на всех сайтах и проверяет некоторые вещи.
Поскольку он запускается на каждой странице, важна производительность. Поэтому мне интересно, может ли надстройка Firefox быть быстрее.
Итак, это мои вопросы:
- Нужно ли Greasemonkey перезагружать скрипт при каждой (повторной) загрузке страницы?
- Может ли надстройка увеличить производительность?
- Какие преимущества, недостатки?
ОБНОВЛЕНИЕ:
Немного справочной информации. Я выполняю оценку задержки загрузки страницы в своем скрипте.
ОБНОВЛЕНИЕ 2 (дополнительная информация):
Заголовок моего скрипта выглядит так:
// ==UserScript==
// @name My Script
// @namespace abc
// @description What it does
// @include *
// @resource moz_list http://mxr.mozilla.org/mozilla/source/netwerk/dns/src/effective_tld_names.dat?raw=1
// @resource resource_B http://mysite.org/res
// @version 1.0
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_getResourceText
// ==/UserScript==
Дополнительно использую следующие технологии:
- Типы данных словаря и массива
- RegExp для сопоставления ссылок
- tldextract код отсюда: https://github.com/masylum/tldextract
- JSON для хранения и извлечения словаря из кеша (могут ли работать stringify и eval быстрее?)
- document.getElementsByTagName()
- окно.местоположение.имя хоста
В псевдокоде моя основная функциональность выглядит так:
var host = window.location.hostname;
host = host.replace('www.', '');
if (host in my_dictionary) {
var links = document.getElementsByTagName('a');
for (i = 0; i < links.length; i++) {
if (host != links[i].hostname) {
if (links[i].href in my_dictionary[host]) {
do_some_stuff();
}
}
}
} else {
send_to_my_server(host);
}