Ajax 요청 시간 초과 및 네트워크 이상 처리 그림 설명

IE 브 라 우 저 쓰 지 마!!
문제.
브 라 우 저가 시간 초과 나 네트워크 이상 을 요청 할 때,우리 프로그램 은 어떤 처리 와 반응 을 해 야 합 니까?
ps:코드 는 제 가 뒤에 붙 일 게 요.생각 이 제일 중요 해 요.
\#요청 시간 초과 우선=express==논리 적 으로 이렇게 쓰 여 있 습 니 다.

//       
app.all("/delay", (request, response) => {
    response.setHeader('Access-Control-Allow-Origin', '*');
    response.setHeader('Access-Control-Allow-Headers', '*');

    setTimeout(() => {
        response.send('    :      ');
    }, 3000);
})
전단 의 요청
在这里插入图片描述
처음에는 요청 시간 을 추가 하지 않 았 습 니 다.결 과 를 출력 할 수 있 습 니 다.
在这里插入图片描述
그렇다면 지금 은 요청 에 제한 시간 을 추가 해 야 합 니 다.이 제한 시간 을 초과 하면 브 라 우 저 는 이 요청 이 시간 을 초과 했다 고 생각 합 니 다.아래 와 같이 덧붙이다
在这里插入图片描述
코드 를 저장 한 후 브 라 우 저 로 새로 고침 하여 콘 솔 을 엽 니 다.
在这里插入图片描述
network 를 선택 하고 단 추 를 누 르 면 network 의 요청 상 태 를 관찰 합 니 다.
우선 처음에는 pending 상태(요청 중)
在这里插入图片描述
요청 한 한도 값(2s)을 초과 하 였 습 니 다.이 때 표시 요청 이 취소 되 었 습 니 다.finish 가 아 닌 cancel 상 태 를 표시 합 니 다.
在这里插入图片描述
그러나 실제 업무 에 서 는 모든 사용자 가 콘 솔 을 열 어 요청 이 시간 을 초과 하 였 는 지 볼 수 없 기 때문에 우 리 는 요청 시간 초과 반전 을 추가 하여 정보 팝 업 창 알림 을 완성 할 수 있 습 니 다.
在这里插入图片描述
우 리 는 새로 운행 을 하 였 는데,이때 바로 팝 업 창 알림 이 있 는 것 을 발견 하 였 다.
在这里插入图片描述
그럼 시간 초과 요청 은 여기까지 입 니 다.
네트워크 이상
이제 네트워크 이상 을 어떻게 처리 해 야 하 는 지 살 펴 보 겠 습 니 다.그러면 네트워크 이상 은 전단 js 에 도 반전 함수 가 있 습 니 다.다음 과 같 습 니 다.
在这里插入图片描述
그리고 저 희 는 브 라 우 저의 콘 솔 을 통 해 오프라인 상 태 를 모 의 합 니 다.
在这里插入图片描述
그리고 우 리 는 버튼 을 눌 러 효 과 를 보 았 다.
在这里插入图片描述
문 제 를 얻 지 마라!
코드

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <titile>         </titile>
    <style>
        #content {
            width: 400px;
            height: 200px;
            border: 1px solid rgb(4, 247, 25);
            border-width: 3px;
            margin: 20px 0 20px 0;
        }
    </style>
</head>

<body>
    <button type="button">  </button>
    <div id="content"></div>
    <script>
        const btn = document.getElementsByTagName('button')[0];
        const res = document.getElementById('content');
        btn.onclick = function() {

            const xhr = new XMLHttpRequest();
            xhr.timeout = 2000;

            xhr.ontimeout = function() {
                alert('    ,         !');
            }

            xhr.onerror = function() {
                alert('        ,         ');
            }

            xhr.open('GET', 'http://127.0.0.1:8080/delay');

            xhr.send();

            xhr.onreadystatechange = function() {
                if (xhr.readyState === 4) {
                    if (xhr.status >= 200 && xhr.status < 300) {
                        res.innerHTML = xhr.response;
                    }
                } else {

                }
            }
        };
    </script>
</body>

</html>

const express = require("express");

const app = express();

//       
app.all("/delay", (request, response) => {
    response.setHeader('Access-Control-Allow-Origin', '*');
    response.setHeader('Access-Control-Allow-Headers', '*');

    setTimeout(() => {
        response.send('    :      ');
    }, 3000);
})

app.listen(8080, () => {
    console.log('    8080  ');
});
총결산
Ajax 요청 시간 초과 와 네트워크 이상 처리 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Ajax 요청 시간 초과 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기