Rumah >pembangunan bahagian belakang >tutorial php >Teknologi penyerahan anti goncang dan anti pendua PHP: cara memilih penyelesaian yang betul
Teknologi penyerahan anti goncang dan anti pendua PHP: Cara memilih penyelesaian yang sesuai memerlukan contoh kod khusus
Dalam pembangunan web, penyerahan anti goncang dan anti pendua adalah dua keperluan teknikal biasa. Apabila berurusan dengan senario seperti interaksi pengguna atau penyerahan borang, kami perlu memastikan bahawa pengguna hanya boleh mencetuskan satu permintaan dalam tempoh masa tertentu untuk mengelakkan penyerahan berulang atau permintaan yang kerap. Artikel ini membincangkan cara memilih penyelesaian yang betul dan menyediakan contoh kod PHP khusus.
1. Teknologi anti goncang
Teknologi anti goncang bermaksud apabila sesuatu peristiwa dicetuskan secara berterusan, hanya operasi terakhir dilakukan dan operasi perantaraan diabaikan. Biasanya kami akan menetapkan pemasa Jika berbilang peristiwa berlaku dalam masa yang ditetapkan, hanya acara terakhir akan dikekalkan untuk memastikan permintaan hanya dihantar sekali.
Penstabilan boleh dicapai dengan cara yang berbeza, seperti menggunakan JavaScript atau PHP. Berikut ialah contoh kod untuk anti-goncang yang dilaksanakan dalam PHP:
<?php class Debounce { private $callback; private $delay; private $timer; public function __construct($callback, $delay) { $this->callback = $callback; $this->delay = $delay; } public function debounce() { if($this->timer) { clearTimeout($this->timer); } $this->timer = setTimeout($this->callback, $this->delay); } } // 示例用法 $debounce = new Debounce(function() { // 执行请求的操作 }, 1000); // 触发事件时调用 debounce() 方法 $debounce->debounce(); ?>
2. Teknologi penyerahan anti-ulang
Teknologi penyerahan anti-ulang adalah untuk menghalang pengguna daripada menghantar borang yang sama atau permintaan yang sama beberapa kali. Penyelesaian biasa adalah untuk memastikan bahawa permintaan borang yang sama hanya diproses sekali dengan menambahkan token unik pada borang dan mengesahkannya pada bahagian pelayan.
Berikut ialah contoh kod untuk mengelakkan penyerahan berulang menggunakan PHP:
<?php class FormToken { private $token; public function __construct() { if(!isset($_SESSION['token'])) { $_SESSION['token'] = bin2hex(random_bytes(32)); } $this->token = $_SESSION['token']; } public function generateToken() { return '<input type="hidden" name="token" value="' . $this->token . '">'; } public function validateToken() { if(isset($_POST['token']) && $_POST['token'] === $this->token) { // 执行表单提交的操作 } else { // 非法请求,给出错误提示 } } } // 示例用法 $formToken = new FormToken(); echo $formToken->generateToken(); $formToken->validateToken(); ?>
Menggunakan kod sampel ini, kami boleh menambah medan token tersembunyi pada borang dan mengesahkannya apabila borang diserahkan. Hanya permintaan yang lulus pengesahan akan diproses.
3. Pilih penyelesaian yang sesuai
Apabila memilih penyelesaian penyerahan anti goncang dan anti duplikasi, ia perlu dinilai berdasarkan keperluan perniagaan tertentu. Perkara berikut boleh digunakan sebagai rujukan:
Ringkasnya, sama ada penyerahan anti goncang atau anti pendua, memilih penyelesaian yang sesuai perlu diukur mengikut keperluan perniagaan tertentu. Kod sampel di atas boleh digunakan sebagai rujukan, dan pembangun boleh membuat pengubahsuaian dan pengoptimuman yang sesuai mengikut situasi sebenar.
Atas ialah kandungan terperinci Teknologi penyerahan anti goncang dan anti pendua PHP: cara memilih penyelesaian yang betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!