Файл динамического скрипта остается устаревшим - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь отладить часть кода MVC, и когда я достигаю точки останова, я вижу, что она попадает в файл динамического сценария с именем VMnnn. Я перепробовал все, CTRL + F5, очистил кеш браузера с меню и очистил временные файлы ASP.NET, остановил IIS Express. Тем не менее, файл динамического сценария остается устаревшим с реальным сценарием, который встроен в код Razor для представления.

Как заставить этот динамический файл сценария обновиться? Или я могу найти и удалить этот динамический файл, если он не только в памяти.

Ответы [ 2 ]

1 голос
/ 26 июня 2019

В зависимости от настроек на стороне клиента, иногда клиент (особенно веб-просмотры) может кэшировать содержимое страницы, несмотря на тот факт, что страница должна быть динамической, если к странице обращаются методом GET и с теми же параметрами.Предложения других, в которых упоминается передача случайного параметра GET, могут также предотвратить кэширование клиента, но вы не обязательно можете контролировать запрос клиента.В этом случае вы можете попробовать добавить следующую строку в метод действия вашего контроллера:

Response.AppendHeader("Cache-Control", "no-cache");

Или вы можете написать такой атрибут:

public class NoCacheAttribute : FilterAttribute, IActionFilter {

    public void OnActionExecuted(ActionExecutedContext filterContext) {
        filterContext.RequestContext.HttpContext.Response.AppendHeader("Cache-Control", "no-cache");
    }

    public void OnActionExecuting(ActionExecutingContext filterContext) { }
}

И добавьте атрибут [NoCache] к любому контроллеру или действию, которое вы хотите.Это сообщит клиенту, что эта страница не должна кэшироваться.Клиент может все еще игнорировать этот заголовок, опять же, в зависимости от его настроек, но поведение большинства клиентов по умолчанию должно работать с этим методом.

0 голосов
/ 24 июня 2019

Вы можете сгенерировать случайную строку через JavaScript, используя Math.random() и преобразовав ее в строку (при желании вы можете затем удалить несловарные символы, которые генерирует toString()).

Далее Мы динамически создаем тег сценария и присваиваем случайную строку части запроса атрибута src.

Ласли, мы вставляем метку в тело или голову так, как тебе удобно. appendChild, write и т. Д.

// Create a random string
let random = (Math.random() * 10000).toString(12)

// Generate the script tag
let script = document.createElement('script')
script.src = `http://example.com/js/myfile.js?${random}`

// Place the script tag somewhere.
document.body.appendChild(script)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...