> 백엔드 개발 > PHP 튜토리얼 > 지속적인 페이지 새로 고침 없이 긴 폴링이 웹 응용 프로그램을 어떻게 효율적으로 업데이트합니까?

지속적인 페이지 새로 고침 없이 긴 폴링이 웹 응용 프로그램을 어떻게 효율적으로 업데이트합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-25 11:47:42
원래의
833명이 탐색했습니다.

How Does Long Polling Efficiently Update Web Applications Without Constant Page Refreshing?

긴 폴링 이해: 초보자 가이드

긴 폴링은 페이지를 지속적으로 새로 고치지 않고도 웹 애플리케이션이 서버에서 새 데이터를 효율적으로 기다릴 수 있도록 하는 기술입니다. 이는 채팅이나 소셜 네트워킹 애플리케이션과 같이 데이터가 자주 업데이트되지 않는 애플리케이션에 특히 유용합니다.

PHP 및 JavaScript에서 기본 롱 폴링 구현

긴 폴링은 복잡해 보이지만 구현은 놀라울 정도로 간단할 수 있습니다. PHP와 JavaScript를 사용한 기본 예제를 살펴보겠습니다.

PHP 스크립트(msgsrv.php)

<?php
if (rand(1, 3) == 1) {
    header("HTTP/1.0 404 Not Found");
    die();
}

sleep(rand(2, 10));
echo("Hi! Have a random number: " . rand(1, 10));
?>
로그인 후 복사

이 스크립트는 간단한 메시지 서버를 시뮬레이션합니다. 난수를 생성하여 실제 조건을 모방하기 위해 2~10초 사이의 무작위 지연을 적용하여 응답으로 보냅니다.

JavaScript 코드(long_poller.htm)

<html>
<head>
    <script src="jquery.min.js"></script>
    <script>
        function addmsg(type, msg) {
            $("#messages").append("<div class='msg " + type + "'>" + msg + "</div>");
        }

        function waitForMsg() {
            $.ajax({
                url: "msgsrv.php",
                success: function (data) {
                    addmsg("new", data);
                    setTimeout(waitForMsg, 1000);
                },
                error: function () {
                    addmsg("error", "Error");
                    setTimeout(waitForMsg, 15000);
                }
            });
        }

        $(document).ready(function () {
            waitForMsg();
        });
    </script>
</head>
<body>
    <div>
로그인 후 복사

이 JavaScript 코드는 jQuery를 사용하여 PHP 스크립트를 비동기적으로 요청합니다. 요청이 성공하면 #messages div에 응답이 추가됩니다. 요청이 실패하면 오류가 표시되고 15초 후에 다시 시도됩니다. setTimeout 함수는 브라우저가 정기적으로 스크립트를 요청하도록 하여 긴 폴링을 구현합니다.

설명

이 예는 긴 폴링의 단순화된 구현을 보여줍니다. PHP 스크립트는 불규칙한 간격으로 데이터를 보내는 서버를 시뮬레이션합니다. JavaScript 코드는 AJAX를 사용하여 반복적으로 스크립트를 요청하고 응답을 기다립니다. 응답이 수신되면 JavaScript 코드가 UI를 업데이트합니다. 응답이 없으면 스크립트는 잠시 기다렸다가 다시 시도합니다. 이 접근 방식을 사용하면 웹 애플리케이션이 서버측 업데이트를 효율적으로 기다리면서 응답성을 유지할 수 있습니다.

위 내용은 지속적인 페이지 새로 고침 없이 긴 폴링이 웹 응용 프로그램을 어떻게 효율적으로 업데이트합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿