2015-08-26 3 views
0

Я использую $.getScript для загрузки некоторых из моих программных кодов. Мой код выглядит примерно так:

var mainJs = "/main.js"; 
$.getScript(mainJs) 
    .then(function() { 
     console.log("main.js loaded"); 
    }); 

Код работает нормально. Тем не менее, я думаю использовать Angular-cache для управления кешированием. Можно ли это сделать?

+0

Вы пытаетесь предотвратить его загружается снова или пытается спасти еще одну поездку на сервер? – charlietfl

+0

@charlietfl Я хочу, чтобы он не загружался снова, даже в следующий раз пользователь посещает. Он только пытается получить от сервера снова, когда кэш истек угловым кешем. – user1995781

+0

угловой кеш не хранит ничего для следующего посещения. Я думаю, что у вас немного изменились ваши концепции кэширования. Caching this won; t не позволяет сценарию запускаться снова в пределах одной сессии приложения .... это ваша цель? Если это так, вам понадобится некоторая услуга, чтобы отслеживать ее, если она была запущена или нет. – charlietfl

ответ

0

Я не уверен, способен ли угловой способ повлиять на кеширование jQuery. Но по умолчанию $.getScript не кэширует.

$.getScript является ярлык:

$.ajax({ 
    url: '', 
    dataType: "script", 
    cache: false 
}); 

Ссылка: http://api.jquery.com/jQuery.getScript/

По умолчанию $ .getScript() устанавливает настройки кэша ложны.

Вы должны использовать:

$.ajax({ 
    url: url, 
    cache: true, 
    dataType: 'script', 
    ... 
}); 
+0

Это не мешает другому запросу серверу. Это действительно не имеет никакого влияния. 'Cache''. $ .ajax' - это не та же концепция, что и угловой кеш, где данные буквально хранятся в хранилище данных на странице – charlietfl

+0

@charlietfl Это делает изменения. Проверьте http://jsfiddle.net/Lttg8ava/. Использование 'cache: false' делает код ответа 200 каждый раз. Однако использование 'cache: true' делает последующий код ответа 304, что означает отсутствие нового контента с сервера. – Joy

+0

ОК, но концепция по-прежнему отличается от углового кеша. Я действительно думаю, что OP хочет, чтобы этот код работал снова. Я получаю 200 с кешем true также ... opps, вероятно, потому что у меня отключен кеш – charlietfl