Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknologi penyerahan anti-goncang dan anti-pendua PHP: salah satu kunci untuk mengoptimumkan interaksi pengguna

Teknologi penyerahan anti-goncang dan anti-pendua PHP: salah satu kunci untuk mengoptimumkan interaksi pengguna

WBOY
WBOYasal
2023-10-12 12:15:111069semak imbas

PHP 防抖和防重复提交技术:优化用户交互的关键之一

PHP teknologi anti goncang dan anti-penyerahan semula: salah satu kunci untuk mengoptimumkan interaksi pengguna, memerlukan contoh kod khusus

Dengan pembangunan Internet, pengguna mempunyai keperluan yang semakin tinggi untuk pengalaman laman web dan aplikasi . Semasa proses interaksi pengguna, teknologi anti-goncang dan anti-penyerahan semula telah menjadi kunci untuk mengoptimumkan pengalaman pengguna. Artikel ini akan memperkenalkan teknologi penyerahan anti goncang dan anti pendua dalam PHP dan memberikan contoh kod khusus.

Teknologi anti goncang merujuk kepada mengurangkan permintaan yang tidak perlu dengan mengehadkan bilangan pencetus apabila pengguna secara berterusan melakukan operasi. Sebagai contoh, apabila mencari dalam kotak input pengguna dalam masa nyata, jika permintaan carian dicetuskan setiap kali pengguna memasukkan surat, ia bukan sahaja akan meningkatkan tekanan pada pelayan, tetapi juga membawa pengalaman yang tidak lancar kepada pengguna. Melalui teknologi anti-goncang, selang masa pencetus permintaan carian boleh dihadkan kepada tempoh masa tertentu, dan permintaan carian hanya akan dicetuskan selepas pengguna berhenti memasukkan untuk satu tempoh masa.

Berikut ialah contoh kod fungsi anti goncang yang dilaksanakan dalam PHP:

function debounce($callback, $delay) {
    $timerId = null;

    return function (...$args) use ($callback, $delay, &$timerId) {
        if ($timerId != null) {
            // 清除之前的定时器
            clearTimeout($timerId);
        }

        // 创建新的定时器
        $timerId = setTimeout(function () use ($callback, $args) {
            // 执行回调函数
            $callback(...$args);
        }, $delay);
    };
}

Fungsi anti goncang di atas menerima dua parameter: $panggilan balik mewakili fungsi panggil balik yang perlu dilaksanakan dan $delay mewakili had bagi selang masa pencetus. Apabila fungsi ini dipanggil, fungsi baharu akan dikembalikan sebagai pengendali acara (seperti acara onkeyup kotak input Setiap kali peristiwa dicetuskan, pemasa sebelumnya akan dikosongkan dan pemasa baharu akan dibuat semula). . Apabila pengguna berhenti menaip untuk satu tempoh masa, pemasa mencetuskan fungsi panggil balik.

Selain teknologi anti-goncang, teknologi penyerahan anti-berulang juga merupakan cara penting untuk meningkatkan pengalaman interaksi pengguna. Apabila pengguna menyerahkan borang, jika pengguna mengklik butang hantar beberapa kali, data yang sama mungkin dihantar berulang kali, meletakkan beban tambahan pada pelayan dan juga menyebabkan beberapa masalah yang tidak dapat diramalkan. Dengan teknologi penyerahan anti-ulang, pengguna boleh dihadkan untuk menyerahkan borang sekali sahaja dalam tempoh masa tertentu.

Berikut ialah contoh kod fungsi penyerahan anti-pendua yang dilaksanakan dalam PHP:

function preventDuplicateSubmit($callback, $key, $expire) {
    $cache = new Redis();
    $cache->connect('127.0.0.1', 6379); // 连接到Redis服务器

    return function (...$args) use ($callback, $key, $expire, $cache) {
        $token = md5($key . serialize($args));

        if ($cache->set($token, 1, 'nx', 'ex', $expire)) {
            // 缓存不存在,可以执行回调函数
            $callback(...$args);
        } else {
            // 缓存已存在,不能重复提交
            echo '请勿重复提交表单!';
        }
    };
}

Fungsi penyerahan anti-penduaan di atas menerima tiga parameter: $callback mewakili fungsi panggil balik yang perlu dilaksanakan dan $key digunakan untuk menjana kunci cache unik Rentetan, $expire mewakili masa tamat tempoh cache. Apabila fungsi ini dipanggil, fungsi baru akan dikembalikan sebagai pengendali untuk acara penyerahan borang. Fungsi ini menyerikan parameter borang dan menggabungkannya dengan $key ke dalam kunci cache yang unik. Jika kunci cache tidak wujud, fungsi panggil balik akan dilaksanakan jika tidak, pengguna digesa untuk tidak menyerahkan borang itu lagi.

Dalam penggunaan sebenar, selang masa anti-goncang dan anti-penyerahan semula yang sesuai boleh dipilih mengikut situasi tertentu. Penggunaan munasabah teknologi anti-goncang dan anti-penyerahan semula boleh meningkatkan pengalaman interaktif pengguna, mengurangkan beban pada pelayan dan meningkatkan prestasi aplikasi.

Di atas ialah pengenalan kepada teknologi penyerahan anti-goncang dan anti-pendua dalam PHP, dan juga menyediakan contoh kod khusus. Diharapkan pembaca dapat menggunakan teknologi ini untuk mengoptimumkan pengalaman interaksi pengguna laman web dan aplikasi serta meningkatkan kepuasan pengguna.

Atas ialah kandungan terperinci Teknologi penyerahan anti-goncang dan anti-pendua PHP: salah satu kunci untuk mengoptimumkan interaksi pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn