PHP에서 ajax는 중국어로 "비동기 JavaScript 및 XML 기술"을 의미하며, 이는 대화형 웹 애플리케이션을 만들기 위한 웹 개발 기술을 의미하며, 이는 전체 페이지를 다시 로드할 필요가 없는 웹 페이지의 비동기 업데이트를 가능하게 하는 방법입니다. 일부 웹페이지를 업데이트할 수 있는 기술입니다.
이 튜토리얼의 운영 환경: windows7 시스템, javascript1.8.5&&PHP7.1 버전, Dell G3 컴퓨터.
Ajax는 무엇을 의미하나요?
ajax는 Asynchronous JavaScript and XML(asynchronous JavaScript and XML technology)의 약어로 대화형 웹 애플리케이션을 만들기 위한 웹 개발 기술을 의미합니다.
ajax는 새로운 프로그래밍 언어가 아니라 현대적인 프로그래밍 언어입니다. 표준화하는 새로운 방법이 있습니다.
ajax는 빠르고 동적인 웹 페이지를 만드는 데 사용되는 기술입니다. 백그라운드에서 서버와 소량의 데이터를 교환합니다. Ajax를 사용하면 웹페이지를 비동기적으로 업데이트할 수 있습니다. 이는 전체 페이지를 다시 로드하지 않고도 웹페이지의 일부를 업데이트할 수 있음을 의미합니다. ajax를 사용하지 않는 기존 웹 페이지가 콘텐츠를 업데이트해야 하는 경우 전체 웹 페이지를 다시 로드해야 합니다.
위에서 ajax의 의미를 읽어본 후, ajax의 장점과 단점에 대해 간략하게 살펴보겠습니다.
Ajax의 장점:
1. 가장 큰 점은 페이지가 새로고침되지 않고, 사용자 경험이 매우 좋다는 것입니다.
2. 더 빠른 응답 기능으로 서버와 통신하려면 비동기 모드를 사용하세요. .
3. 이전에 서버에서 부담했던 작업 중 일부를 클라이언트로 전송하여 클라이언트의 유휴 용량을 활용하여 처리할 수 있어 서버 및 대역폭의 부담을 줄이고 공간 및 광대역 임대 비용을 절약할 수 있습니다. 그리고 서버의 부담을 줄이기 위해 ajax의 원칙은 "요청 시 데이터를 가져오는 것"인데, 이는 중복된 요청과 응답으로 인해 발생하는 서버의 부담을 최소화할 수 있습니다.
4. 표준화되고 널리 지원되는 기술을 기반으로 플러그인이나 애플릿을 다운로드할 필요가 없습니다.
5. Ajax는 인터넷 애플리케이션을 더 작고, 더 빠르고, 더 사용자 친화적으로 만들 수 있습니다.
Ajax의 단점:
1. Ajax는 브라우저 뒤로 버튼을 지원하지 않습니다.
2. 보안 문제 AJAX는 서버와의 상호 작용 세부 정보를 노출합니다.
3. 검색 엔진에 대한 지원이 상대적으로 약합니다.
4. 프로그램의 예외 메커니즘을 삭제했습니다.
5. 디버깅이 쉽지 않습니다.
Using ajax in php
사용자가 위의 입력창에 문자를 입력하면 "showHint()" 함수가 실행됩니다. 이 함수는 "onkeyup" 이벤트에 의해 트리거됩니다:
<html> <head> <script> function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码 xmlhttp=new XMLHttpRequest(); } else { //IE6, IE5 浏览器执行的代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","gethint.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <p><b>在输入框中输入一个姓名:</b></p> <form> 姓名: <input type="text" onkeyup="showHint(this.value)"> </form> <p>返回值: <span id="txtHint"></span></p> </body> </html>
소스 코드 설명:
입력 상자가 비어 있는 경우(str.length==0) 이 함수는 txtHint 자리 표시자의 내용을 지우고 함수를 종료합니다.
입력 상자가 비어 있지 않으면 showHint()는 다음 단계를 수행합니다.
XMLHttpRequest 객체 생성
서버 응답이 준비되면 실행되는 함수 생성
요청 보내기 서버에 있는 파일로
URL(입력 상자의 내용 포함) 끝에 추가된 매개변수(q)에 주의하세요.
PHP 파일
호출되는 서버 페이지 위의 JavaScript는 "gethint.php"라는 이름의 PHP 문서입니다.
"gethint.php"의 소스 코드는 이름 배열을 확인하고 해당 이름을 브라우저에 반환합니다.
<?php // 将姓名填充到数组中 $a[]="Anna"; $a[]="Brittany"; $a[]="Cinderella"; $a[]="Diana"; $a[]="Eva"; $a[]="Fiona"; $a[]="Gunda"; $a[]="Hege"; $a[]="Inga"; $a[]="Johanna"; $a[]="Kitty"; $a[]="Linda"; $a[]="Nina"; $a[]="Ophelia"; $a[]="Petunia"; $a[]="Amanda"; $a[]="Raquel"; $a[]="Cindy"; $a[]="Doris"; $a[]="Eve"; $a[]="Evita"; $a[]="Sunniva"; $a[]="Tove"; $a[]="Unni"; $a[]="Violet"; $a[]="Liza"; $a[]="Elizabeth"; $a[]="Ellen"; $a[]="Wenche"; $a[]="Vicky"; //从请求URL地址中获取 q 参数 $q=$_GET["q"]; //查找是否由匹配值, 如果 q>0 if (strlen($q) > 0) { $hint=""; for($i=0; $i<count($a); $i++) { if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q)))) { if ($hint=="") { $hint=$a[$i]; } else { $hint=$hint." , ".$a[$i]; } } } } // 如果没有匹配值设置输出为 "no suggestion" if ($hint == "") { $response="no suggestion"; } else { $response=$hint; } //输出返回值 echo $response; ?>
설명: JavaScript가 텍스트(예: strlen($q) > 0)를 보내는 경우 발생:
JavaScript에서 보낸 문자와 일치하는 이름을 찾습니다.
일치하는 항목이 없으면 응답 문자열을 "제안 없음"으로 설정합니다.
일치하는 이름이 하나 이상 발견되면 모든 이름 설정 응답 문자열을 사용합니다.
"txtHint" 자리 표시자에게 응답 보내기
PHP Ajax 도메인 간 문제 해결 방법
이 문서에서는 Access-Control-Allow-Origin을 설정하여 도메인 간을 구현합니다.
예: 클라이언트의 도메인 이름은 client.runoob.com이고 요청된 도메인 이름은 server.runoob.com입니다.
Ajax를 직접 사용하여 접속하면 다음과 같은 오류가 발생합니다.
XMLHttpRequest cannot load http://server.runoob.com/server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://client.runoob.com' is therefore not allowed access.
1. 단일 도메인 이름으로 접속을 허용합니다.
크로스용 도메인 이름(http://client.runoob.com)을 지정합니다. -도메인 액세스, http://server.runoob.com/server.php 파일 헤더에 다음 코드 추가:
header('Access-Control-Allow-Origin:http://client.runoob.com');
2. 여러 도메인 이름에 대한 액세스 허용
여러 도메인 이름 지정(http:// client1.runoob.com, http://client2.runoob.com 등) 도메인 간 액세스를 위해서는 http://server.runoob.com/server의 헤더에 다음 코드를 추가하기만 하면 됩니다. php 파일:
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://client1.runoob.com', 'http://client2.runoob.com' ); if(in_array($origin, $allow_origin)){ header('Access-Control-Allow-Origin:'.$origin); }
3. 모든 도메인 이름 액세스 허용
allowed 모든 도메인 이름에 액세스하려면 http://server.runoob.com/server 헤더에 다음 코드를 추가하기만 하면 됩니다. php 파일:
header('Access-Control-Allow-Origin:*');
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 Ajax는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!