Кэширование скрипта с помощью jQuery.ajax, похоже, работает для меня.
Источник: http://api.jquery.com/jQuery.getScript/
jQuery.cachedScript = function(url, options) {
// allow user to set any option except for dataType, cache, and url
options = $.extend(options || {}, {
dataType: "script",
cache: true,
url: url
});
// Use $.ajax() since it is more flexible than $.getScript
// Return the jqXHR object so we can chain callbacks
return jQuery.ajax(options);
};
// Usage
$.cachedScript("ajax/test.js").done(function(script, textStatus) {
console.log( textStatus );
});
Например, у меня есть представление формы для размещения в DOM, которое использует некоторый пользовательский JavaScript:
<script type="text/javascript">
$.cachedScript("/js/my_form_script.js");
</script>
<form action="/Ajax/saveSomething" method="POST">
...
</form>
Каждый разформа загружена, моя консоль показывает запрос get для скрипта, но я подтвердил, что запрос попадает только на сервер при первой загрузке.