Rumah >pembangunan bahagian belakang >masalah PHP >apakah maksud ajax dalam php
Dalam php, ajax dalam bahasa Cina bermaksud "teknologi JavaScript dan XML tak segerak", yang merujuk kepada teknologi pembangunan web untuk mencipta aplikasi web interaktif boleh membolehkan kemas kini tak segerak bagi halaman web, yang merupakan kaedah yang tidak memerlukan Teknologi yang boleh mengemas kini sebahagian daripada halaman web tanpa memuatkan semula keseluruhan halaman web.
Persekitaran pengendalian tutorial ini: sistem windows7, versi javascript1.8.5&&&PHP7.1, komputer Dell G3.
Apakah maksud Ajax?
ajax ialah singkatan daripada Asynchronous JavaScript dan XML (asynchronous JavaScript and XML technology), yang merujuk kepada teknologi pembangunan web untuk mencipta aplikasi web interaktif
ajax Not bahasa pengaturcaraan baharu, tetapi cara baharu menggunakan piawaian sedia ada.
ajax ialah teknologi yang digunakan untuk mencipta halaman web yang pantas dan dinamik. Dengan menukar sejumlah kecil data dengan pelayan di latar belakang. Ajax membenarkan halaman web dikemas kini secara tidak segerak. Ini bermakna bahagian halaman web boleh dikemas kini tanpa memuatkan semula keseluruhan halaman. Jika halaman web tradisional (yang tidak menggunakan ajax) perlu mengemas kini kandungan, keseluruhan halaman web mesti dimuat semula.
Setelah membaca maksud ajax di atas, mari kita lihat secara ringkas kebaikan dan keburukan ajax.
Kelebihan ajax:
1. Perkara yang paling penting ialah halaman tidak dimuat semula dan pengalaman pengguna sangat baik.
2. Gunakan mod tak segerak untuk berkomunikasi dengan pelayan, dengan keupayaan tindak balas yang lebih pantas. .
3. Beberapa kerja yang sebelumnya dibebankan oleh pelayan boleh dipindahkan kepada pelanggan, menggunakan kapasiti terbiar pelanggan untuk memprosesnya, mengurangkan beban pada pelayan dan lebar jalur, serta menjimatkan ruang dan penyewaan jalur lebar kos. Dan untuk mengurangkan beban pada pelayan, prinsip ajax adalah untuk "mengambil data atas permintaan", yang boleh meminimumkan beban pada pelayan yang disebabkan oleh permintaan dan tindak balas yang berlebihan.
4. Berdasarkan teknologi yang diseragamkan dan disokong secara meluas, tidak perlu memuat turun pemalam atau program kecil.
5. Ajax boleh menjadikan aplikasi Internet lebih kecil, lebih pantas dan lebih mesra pengguna.
Kelemahan ajax:
1. Ajax tidak menyokong butang belakang penyemak imbas.
2. Isu keselamatan AJAX mendedahkan butiran interaksi dengan pelayan.
3. Sokongan untuk enjin carian agak lemah.
4. Memusnahkan mekanisme pengecualian program.
5. Tidak mudah dinyahpepijat.
Menggunakan ajax dalam php
Apabila pengguna menaip aksara dalam kotak input di atas, fungsi "showHint()" akan dilaksanakan. Fungsi ini dicetuskan oleh peristiwa "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>
Penjelasan kod sumber:
Jika kotak input kosong (str.length==0), fungsi ini akan mengosongkan txtHint watak pemegang tempat dan keluar dari fungsi.
Jika kotak input tidak kosong, maka showHint() akan melaksanakan langkah berikut:
Buat objek XMLHttpRequest
Buat Fungsi dilaksanakan apabila respons pelayan sedia
Menghantar permintaan ke fail pada pelayan
Sila ambil perhatian parameter (q) ditambahkan pada penghujung URL (Termasuk kandungan kotak input)
Fail PHP
Halaman pelayan yang dipanggil di atas melalui JavaScript ialah dipanggil "gethint.php" fail PHP.
Kod sumber dalam "gethint.php" menyemak tatasusunan nama dan mengembalikan nama yang sepadan kepada penyemak imbas:
<?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; ?>
Penjelasan: Jika JavaScript menghantar sebarang teks (iaitu strlen( $q ) > 0), kemudian:
Cari nama yang sepadan dengan aksara yang dihantar oleh JavaScript
Jika tiada padanan ditemui, kemudian Tetapkan respons rentetan kepada "tiada cadangan"
Jika satu atau lebih nama yang sepadan ditemui, tetapkan rentetan respons dengan semua nama
Hantar respons kepada pemegang tempat "txtHint"
penyelesaian masalah merentas domain PHP Ajax
Artikel ini diluluskan Tetapkan Kawalan Akses -Allow-Origin untuk mencapai domain silang.
Contohnya: nama domain pelanggan ialah client.runoob.com, dan nama domain yang diminta ialah server.runoob.com.
Jika anda terus menggunakan ajax untuk mengakses, akan terdapat ralat berikut:
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. Benarkan satu nama domain mengakses
Nyatakan nama domain (http: //client.runoob.com) untuk akses merentas domain, anda hanya perlu menambah kod berikut pada pengepala fail http://server.runoob.com/server.php:
header('Access-Control-Allow-Origin:http://client.runoob.com');
2. Benarkan berbilang nama domain untuk mengakses
Tentukan berbilang nama domain (http://client1.runoob.com, http://client2. runoob.com, dsb.) untuk akses merentas domain, kemudian hanya http: //server.runoob.com/server.php pengepala fail tambahkan kod berikut:
$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 semua nama domain untuk diakses
Benarkan semua nama domain untuk mengakses Hanya tambah kod berikut pada kepala fail http://server.runoob.com/server.php:
header('Access-Control-Allow-Origin:*');
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci apakah maksud ajax dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!