PHP 대량 작업 처리 시간 초과 없 는 해결 방법
4071 단어 PHP과업시간 을 초과 하 다
PHP 일괄 작업 처리
PHP 는 임 무 를 대량으로 처리 할 때 시간 을 초과 합 니 다.사실 해결 방법 은 매우 간단 합 니 다.즉,임 무 를 분할 하고 한 번 에 일부분 을 처리 하 는 것 입 니 다.임무 진 도 는 서버 에 두 어도 되 고 클 라 이언 트 에 두 어도 됩 니 다.복잡 하지 않 으 면 클 라 이언 트 에 두 고 js 로 처리 하면 됩 니 다.
클 라 이언 트 js 리 셋 처리
클 라 이언 트 가 처리 할 때 한 곳 에 머 물 러 야 합 니 다.바로 ajax 를 사용 하여 처리 할 때 ajax 는 비동기 입 니 다.for 순환 을 사용 하여 처리 할 때 대량 요청 일 뿐 입 니 다.이렇게 작업 양 이 많 을 때 직접 DDoS 서버 를 사용 하기 때문에 리 셋 함수 가 돌아 올 때 까지 기 다 렸 다가 다음 요청 을 해 야 합 니 다.
클 라 이언 트 예
파일:index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#Jidsall").click(function(){
$(".Jids").prop("checked", this.checked);
});
$("#btn_request").click(function(){
//
var task = {};
//
task.list = $(".Jids:checked").toArray();
//
task.i = 0;
//
task.next = function() {
if (this.i >= this.list.length) {
//
this.done();
return;
}
var i = this.i;
//
var error = function(data){
//
console.log("error", data.id);
//
this.next();
};
//
var success = function(data){
//
console.log("success", data.id);
//
this.next();
};
$.ajax({
context: this,
method: "post",
url: "do.php",
data: {id:this.list[i].value},
error: error,
success: success,
dataType: "json"
});
this.i++;
};
//
task.done = function() {
console.log("done");
};
//
task.next();
});
});
</script>
</head>
<body>
<table>
<tr><td><input type="checkbox" id="Jidsall">all</td></tr>
<tr><td><input type="checkbox" value="1" class="Jids">1</td></tr>
<tr><td><input type="checkbox" value="2" class="Jids">2</td></tr>
<tr><td><input type="checkbox" value="3" class="Jids">3</td></tr>
<tr><td><input type="checkbox" value="4" class="Jids">4</td></tr>
<tr><td><input type="checkbox" value="5" class="Jids">5</td></tr>
<tr><td><input type="checkbox" value="6" class="Jids">6</td></tr>
<tr><td><input type="checkbox" value="7" class="Jids">7</td></tr>
<tr><td><input type="checkbox" value="8" class="Jids">8</td></tr>
<tr><td><input type="checkbox" value="9" class="Jids">9</td></tr>
<tr><td><input type="button" id="btn_request" value=" "></td></tr>
</table>
</body>
</html>
PHP 대량 작업 처리 예 서버 예파일:do.php
<?php
sleep(3);
if ($_POST["id"] == 5) {
http_response_code(500);
exit();
}
echo json_encode($_POST);
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.