Получение содержимого файла скрипта с использованием Javascript

Для тех, у кого проблема API, вызываемая более одного раза при загрузке довольно большого файла с использованием метода в принятом ответе, настройте буферизацию ответа на true System.Web.HttpContext.Current.Response.Buffer = true;

Это гарантирует, что весь двоичный контент буферизуется на стороне сервера перед его отправкой клиенту. В противном случае вы увидите, что на контроллер будет отправлено несколько запросов, и если вы не справитесь с ним должным образом, файл станет поврежденным.

11
задан vdh_ant 12 June 2009 в 04:21
поделиться

6 ответов

Я думаю, что вы хотите назначить переменную внутри template.js. Тогда у вас есть переменная, доступная для использования везде, где вы хотите в jquery. Примерно так:

var tpl = "<div> ... </div>"

Разве это не было бы более простым решением вашей проблемы? Делаем это в Ext JS. Я думаю, это сработает для вас в jQuery.

2
ответ дан 3 December 2019 в 08:31
поделиться

Если я правильно вас понял, вы не хотите использовать Ajax для загрузки текста шаблона html, а скорее загружаете его вместе с остальной частью страницы. Если вы управляете серверной частью, вы всегда можете включить текст шаблона в невидимый тег div, на который затем ссылаетесь из Javascript:

<div id="template" style="display:none;">
...template text...
</div>
<script>
// pops up the template text.
alert(document.getElementById("template").innerHTML);
</script>

Если вы просто хотите загрузить шаблон, чтобы его можно было кэшировать, вы можете поместить содержимое переменной, подобное этой:

<script>
var template = "template text..";
</script>

, или вы можете загрузить его с помощью ajax и сохранить шаблон в переменной, чтобы он был доступен. В jquery это довольно тривиально:

var template;
$.get("template.html", function(data){
  template = data;
});
5
ответ дан 3 December 2019 в 08:31
поделиться

, если вы не загрузите сценарий в виде буквального текста на странице, он не существует в виде текста. Он интерпретируется браузером и встраивается в среду выполнения с любыми другими скриптами.

Если вам нужен источник, вы должны получить его снова, если с помощью Ajax получите responseText.

Он будет взят из кеша браузера, и его не нужно загружать повторно.

4
ответ дан 3 December 2019 в 08:31
поделиться

Почему бы не использовать Ajax (ну, Ajah, потому что его html: -))?

если сервер настроен правильно и не отправляются заголовки без кеширования или истечения срока действия, браузер будет закэшируйте это.

0
ответ дан 3 December 2019 в 08:31
поделиться

Что находится в файле JavaScript? Если это реальный код, вы можете запускать в нем функции и ссылочные переменные так же, как вы вырезали и вставляли их на веб-страницу. Вы захотите поместить строку include над всеми блоками сценария, которые на нее ссылаются.

Вы хотите этого добиться?

0
ответ дан 3 December 2019 в 08:31
поделиться

Вы можете получить атрибут src скрипта, а затем использовать XHR для получения содержимого JS-файла. Это намного более чистый способ сделать это, ИМО. например: -

if(window.XMLHttpRequest) {
                var xhr = new XMLHttpRequest();         
                xhr.onreadystatechange = function() {
                    if(xhr.status == 200 && xhr.readyState == 4) {
                        var sourceCode = xhr.responseText;
                                            alert('The source code is:-\n'+sourceCode);
                    }
                }
                xhr.open("GET",document.getElementById('scriptID').src,true);
                xhr.send(null);
            }
2
ответ дан 3 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: