Обновить страницу от другого (page) - PullRequest
3 голосов
/ 12 апреля 2019

Я работаю над проектом, который содержит 2 независимые страницы: каждая из них отображается на своем компьютере.Мне бы хотелось, чтобы каждый раз, когда я нажимал кнопку на первой странице, она обновляла вторую страницу.Как я могу продолжить?

Я уже пробовал, добавляя номер (1) в базу данных каждый раз, когда нажимаю на кнопку.На второй странице, если число равно 1, очистите его до 0, а затем обновите.(PHP, jQuery).

Я думаю, что ответ существует с AJAX, но я не знаю, как это сделать.

это моя вторая страница (которую я хочу обновить)

<script type="text/javascript">
    setInterval("my_function();",10000); 

    function my_function()
    {
        $('.refresh').load(location.href + ' .refresh');
    }
</script>

    <div class="refresh">
        <?php 
            require("database.php");    
            $db = Database::connect();

            $statement = $db->query("SELECT * from refresh");
            $item = $statement->fetch();

            if ($item["value"] =="1")
            {                                   
                $newval = "0";
                $statement = $db->prepare("UPDATE refresh SET value=?");
                $statement->execute(array($newval));
                Database::disconnect();
                header("location: page2.php");
            }
        ?>  
    </div>

Ответы [ 2 ]

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

Я думаю, что одним из лучших способов является использование базы данных реального времени, которая синхронизируется в режиме реального времени с каждым подключенным клиентом, и ваши страницы автоматически получают обновления с самыми новыми данными.

Таким образом, вы можете открыть две отдельные страницы.на двух разных вкладках (или компьютерах) и на одной из них вы обновите некоторые данные на второй странице, и они будут автоматически обновлены.

Лично мне нравится Firebase база данных в реальном времени, и есть хорошая документация для каждой платформы, которую вы планируете использовать.

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

Вызов вашего бэкенда на setInterval может быть очень тяжелым.WebSockets сделаны для решения этих проблем.Вы можете использовать WebSockets для достижения желаемого в очень легкой манере.

Реализация для этого варианта использования может быть (для браузера):

var socket = io()

// Send refresh command
document.getElementByd('my-button').addEventListener('click', function () {
  socket.emit('refresh', '')
})

// Refresh when command comes
socket.on('refresh', function() {
  location.reload()
});

Вам также необходимо настроить SocketIOна вашем бэкэнде, чтобы все это работало.Оформить заказ: http://socketo.me/docs/http

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...