Я разрабатываю расширение хром для ajaxify каждого веб-сайта ajax, такого как wikipedia. и т. д. Он отлично работает, но не загружает файлы js. Итак, я написал сценарий для загрузки js-файлов, которые необходимы для страницы, получив атрибут src из тега. Но проблема в том, что когда я загружаю другую страницу этого сайта, каждый скрипт загружается снова. Поэтому бесполезно делать это с целью сокращения полосы пропускания.Как найти, загружен ли javascript или нет?
Итак, я хочу знать, есть ли способ сопоставить массив сценариев нового со своей предыдущей страницей. и определить, какие сценарии являются новыми, и загружать только их.
var array1 = [];
for (var i = 0; i < jsn; i++) {
var jssrc = document.getElementsByTagName("script")[i].src;
array1.push(jssrc);
}
var array2 = [how to find out array script source of the new page]
Array.prototype.diff = function(array2) {
var ret = [];
for(i in this) {
if(array2.indexOf(this[i]) > -1){
ret.push(this[i]);
}
}
return ret;
};
ajaxpagefetcher.load("ajax-script", "", true, array1.diff(array2);)
Как найти скрипт Src массив новой страницы, которая должна быть загружена .. еще один вопрос, с вне перезагрузки страницы, если я удалить тег тела через Вытащите функции(), скрипты, которые уже загружен и удален? Спасибо Я жду с нетерпеливым для воспроизведения ....
Итак, вы хотите, чтобы массив2 содержал скрипт src не в array1? – theonlygusti
Не то, что я хочу поставить массив скриптов src на странице, которая должна быть загружена. в Array2, но Array1 содержит массив скрипта src на странице, откуда я выполняю запрос ajax для загрузки страницы. – user3586265
Не загрязняйте 'Array.prototype'. Не перебирайте массивы с помощью 'for ... in' loops. – Oriol