2015-01-25 4 views
0

Я разрабатываю расширение хром для 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 массив новой страницы, которая должна быть загружена .. еще один вопрос, с вне перезагрузки страницы, если я удалить тег тела через Вытащите функции(), скрипты, которые уже загружен и удален? Спасибо Я жду с нетерпеливым для воспроизведения ....

+0

Итак, вы хотите, чтобы массив2 содержал скрипт src не в array1? – theonlygusti

+0

Не то, что я хочу поставить массив скриптов src на странице, которая должна быть загружена. в Array2, но Array1 содержит массив скрипта src на странице, откуда я выполняю запрос ajax для загрузки страницы. – user3586265

+1

Не загрязняйте 'Array.prototype'. Не перебирайте массивы с помощью 'for ... in' loops. – Oriol

ответ

0

В конце файла JS:

window.iAmLoadedOnThisWindow = true; 

И в загрузчике части:

if(! window.iAmLoadedOnThisWindow) { 
    // append the script with some dom method 
} 

Если JS file is the library, протестировать библиотеку: if(jQuery), if(_) и т. д.

Смежные вопросы