В Google Chrome не отображаются изменения в файле JavaScript

Проект C# asp net core. Использую jQuery v3.5.1 и BootStrap 4. Среда разработке Visual Studio 2019.

В проекте есть страница Edit.cshtml, к которой прописана ссылка на файл с JS-кодом:

@model voteCollector.Models.Friend

@{
    ViewData["Title"] = "Edit";
}
@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf
@functions {
    public string GetAntiXsrfRequestToken()
    {
        return Xsrf.GetAndStoreTokens(Context).RequestToken;
    }
}


<h4></h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Edit">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="IdFriend" />
            <div class="form-row">
                <div class="form-group col-md-6">
                    <label asp-for="CityId" class="control-label"></label>
                    <select id="CityId" asp-for="CityId" class="form-control" asp-items="ViewBag.CityId"></select>
                    <span asp-validation-for="CityId" class="text-danger"></span>
                </div>
                <div class="form-group col-md-6">
                    <label asp-for="StreetId" class="control-label"></label>
                    <select id="StreetId" asp-for="StreetId" class="form-control" asp-items="ViewBag.StreetId"></select>
                    <span asp-validation-for="StreetId" class="text-danger"></span>
                </div>
                
                <div class="form-group col-md-6">
                    <label asp-for="HouseId" class="control-label"></label>
                    <select id="HouseId" asp-for="HouseId" class="form-control" asp-items="ViewBag.HouseId"></select>
                    <span asp-validation-for="HouseId" class="text-danger"></span>
                </div>                                       
            </div>                             

            <div class="form-row">
                <div class="form-group col-md-6">
                    <input type="submit" value="Сохранить" class="btn btn-primary btn-block" />
                </div>
                <div class="form-group col-md-6">
                    <a asp-action="Index" class="btn btn-secondary btn-block"><i class="fa fa-table"></i>Вернуться к списку</a>
                </div>
            </div>
        </form>
    </div>
</div>

@section Scripts {

    <script type="text/javascript" src="~/js/JS_Edit_Friend.js"></script>
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Есть файл с JS-кодом для данной страницы. Изначально он содержал следующее:

//Установка текущей даты
function stateDate(idObject) {
    var today = new Date();
    var dd = String(today.getDate()).padStart(2, '0');
    var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
    var yyyy = today.getFullYear();
    today = yyyy + '-' + mm + '-' + dd;
    document.getElementById(idObject).value = today;
}

//Автоматич установка даты голосования
function setDate(sourseidObj,idObject) {
    chbox = document.getElementById(sourseidObj);
    if (chbox.checked) {
        var today = new Date();
        var dd = String(today.getDate()).padStart(2, '0');
        var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
        var yyyy = today.getFullYear();
        today = yyyy + '-' + mm + '-' + dd;
        document.getElementById(idObject).value = today;
    }
    else {
        document.getElementById(idObject).value = null;
    }
}

Потом я добавил туда код, поменял функции местами и он стал таким:

//Автоматич установка даты голосования
function setDate(sourseidObj, idObject) {
    chbox = document.getElementById(sourseidObj);
    if (chbox.checked) {
        var today = new Date();
        var dd = String(today.getDate()).padStart(2, '0');
        var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
        var yyyy = today.getFullYear();
        today = yyyy + '-' + mm + '-' + dd;
        document.getElementById(idObject).value = today;
    }
    else {
        document.getElementById(idObject).value = null;
    }
}
//Установка текущей даты
function stateDate(idObject) {
    var today = new Date();
    var dd = String(today.getDate()).padStart(2, '0');
    var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
    var yyyy = today.getFullYear();
    today = yyyy + '-' + mm + '-' + dd;
    document.getElementById(idObject).value = today;
}

// Обновление списка улиц после выбора города
$(function () {
    $("#CityId").change(function () {
        var formData = { 'CityId': Number.parseInt($('#CityId').val()), 'Name': $('#CityId>option:selected').text() };
        $.ajax({
            url: "http://localhost:18246/api/API/searchStreets",
            headers:
            {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'RequestVerificationToken': $('#RequestVerificationToken').val()
            },
            type: 'POST',
            dataType: "json",
            data: JSON.stringify(formData),
            success: function (data) {

                dataFilling(data, 'idStreet', 'name', '#StreetId', '<option/>');
            },
            error: function (result, status, er) {
                alert("error: " + result + " status: " + status + " er:" + er);
            }
        });
    });
});

// Обновление списка домов после выбора улицы
$(function () {
    $("#StreetId").change(function () {
        var formData = { 'IdStreet': Number.parseInt($('#StreetId').val()), 'Name': $('#StreetId>option:selected').text() };
        $.ajax({
            url: "http://localhost:18246/api/API/searchHouse",
            headers:
            {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'RequestVerificationToken': $('#RequestVerificationToken').val()
            },
            type: 'POST',
            dataType: "json",
            data: JSON.stringify(formData),
            success: function (data) {

                dataFilling(data, 'idHouse', 'name', '#HouseId', '<option/>');
            },
            error: function (result, status, er) {
                alert("error: " + result + " status: " + status + " er:" + er);
            }
        });
    });
});

   
//Заполнение объекта html данными из json массива
function dataFilling(data, nameProperty1, nameProperty2, idObject, propertyHtml) {

    var objectHtml = $(idObject);
    objectHtml.empty();

    $.each(data, function (index, dataInstance) {
        objectHtml.append($(propertyHtml,
            {
                value: dataInstance[nameProperty1],
                text: dataInstance[nameProperty2]
            }));
    });
}

Но при запуске проекта эти изменения не применяются - в режиме разработчика отображаются все те же только 2-е функции и соответственно работают только они введите сюда описание изображения


Ответы (1 шт):

Автор решения: KuzCode

Google Chrome множество файлов сохраняет в кеш, где они хранятся определённое время, обычно сутки. Новые изменения в вашем js-файле никак не отображаются, так как файл с таким же расположением и названием уже хранится в кеше.

Чтобы отключить хранение кеша в Google Chrome, необходимо зайти в инструменты разработчика (ПКМ -> Посмотреть код) и затем во вкладке Network поставить галочку на Disable cache:

введите сюда описание изображения

→ Ссылка