Как выполнить функцию для обновления источника JSON - PullRequest
1 голос
/ 25 апреля 2019

У меня есть карта Leaflet, которая показывает некоторые погодные данные из источника Json.У меня уже есть функция, которая обновляет данные каждые x минут с помощью функции setInterval.

    setTimeout(function () {
        refreshId = setInterval(function () {

            $.ajax({
                method: 'get',
                dataType: 'text',
                url: 'myURLfile.json',
                success: function (data) {
                    if (data) {
                        markers = [];
                        var withoutMarkers = data.slice(10);
                        markers = JSON.parse(withoutMarkers);
                        //console.log(markers);

                        replaceMarkers(currentFactor);

                    }
                },
                error: function (err) {
                    console.error('there is not date for today.', err)
                }
            })
        }, 300000);
    },10000)

}

Теперь мне нужно назначить эту функцию кнопке для выполнения функции обновления вручную.Что-то вроде

        L.easyButton( 'fas fa-cloud-sun-rain', function(){
            myfunction()
        }, 'Refresh', {
            position: 'topright'
        })

Но я не понимаю, что мне нужно точно назвать, чтобы сделать это.

1 Ответ

1 голос
/ 25 апреля 2019

Вычеркните ваш код извлечения из setInterval и используйте вновь созданную функцию как в setInterval, так и в определении кнопки.

Что-то вроде

function fetchData() {
    $.ajax({
        method: 'get',
        dataType: 'text',
        url: 'myURLfile.json',
        success: function (data) {
            if (data) {
                markers = [];
                var withoutMarkers = data.slice(10);
                markers = JSON.parse(withoutMarkers);
                //console.log(markers);

                replaceMarkers(currentFactor);

            }
        },
        error: function (err) {
            console.error('there is not date for today.', err)
        }
    });
}

// setup your interval
setInterval(fetchData, 300000);

// setup your button
L.easyButton( 'fas fa-cloud-sun-rain', fetchData, 'Condizioni', {
    position: 'topright'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...