ホームページ バックエンド開発 PHPチュートリアル 手ぶれ防止と重複送信防止: PHP 開発の必須スキル

手ぶれ防止と重複送信防止: PHP 開発の必須スキル

Oct 12, 2023 am 09:24 AM
手ぶれ補正 プログラミングキーワード 重複防止

防抖和防重复提交:PHP 开发中的必备技巧

手ぶれ防止と重複投稿防止: PHP 開発の必須スキル

インターネットの発展に伴い、Web アプリケーションは人々の生活に欠かせないものになりました。 PHP 開発では、揺れ防止と反復送信防止は非常に重要なスキルの 1 つです。この記事では、手ぶれ防止と重複送信防止の概念と原則を紹介し、具体的なコード例を示します。

1. アンチシェイクの概念と原理
アンチシェイクは、頻繁にトリガーされるイベントの実行数を減らすために使用される一般的な技術手段です。簡単に言えば、手ぶれ補正の機能は、以前のトリガー イベントを無視し、一定時間内に最後にトリガーされたイベントのみを実行することです。

手ぶれ補正の原理は、タイマーを使用してイベントの実行機能を遅らせることです。イベントがトリガーされると、タイマーが設定されます。タイマーの時間範囲内で、イベントが再度トリガーされると、時間が再調整されます。タイマーの期限が切れた後にイベントが再度トリガーされない場合は、最後にトリガーされた時間が記録されます。イベントが実行されます。

次は、手ぶれ補正機能を実装する簡単な PHP コードの例です。

function debounce($callback, $delay) {
    $timer = null;
    return function () use ($callback, $delay, &$timer) {
        if ($timer) {
            clearTimeout($timer);
        }
        $args = func_get_args();
        $timer = setTimeout(function () use ($callback, $args) {
            call_user_func_array($callback, $args);
        }, $delay);
    };
}
ログイン後にコピー

使用例:

function search($keyword) {
    // 模拟搜索操作
    echo "搜索关键词:$keyword
";
}

$debounceSearch = debounce('search', 1000); // 设置延迟为 1 秒

$debounceSearch('PHP'); // 触发搜索关键词:PHP
$debounceSearch('JavaScript'); // 不触发
$debounceSearch('Python'); // 不触发
ログイン後にコピー

上記の例では、デバウンス関数は次のように生成されます。 debounceSearch 関数を呼び出すと、遅延時間が 1 秒に設定されます。 debounceSearch 関数が呼び出されるたびに、1 秒以内に新しい呼び出しがある場合は時間がリセットされ、1 秒以内に新しい呼び出しがない場合は最後の呼び出しが実行されます。

2. 重複送信防止の概念と原則
重複送信防止とは、ユーザーがフォーム送信などの操作中に同じリクエストを複数回送信できないようにすることを指します。繰り返し送信すると、バックエンド データに異常が発生し、システムに不必要な負荷がかかる場合があります。

繰り返しの送信を防ぐ原則は、送信する前にリクエストごとに一意の識別子を生成することです。リクエストを受信した後、バックエンドは識別子が使用されているかどうかを確認し、使用されている場合は重複送信とみなされ処理を拒否し、使用されていない場合はリクエストの処理を続行し、マークを付けます。使用される識別子。

以下は、重複送信を防止する機能を実装する簡単な PHP コードの例です。

function preventDuplicateSubmit() {
    $token = md5(uniqid(rand(), true));
    $_SESSION['token'] = $token;
    return $token;
}

function checkDuplicateSubmit() {
    $token = isset($_SESSION['token']) ? $_SESSION['token'] : '';
    unset($_SESSION['token']);
    return !empty($token) && $token === $_POST['token'];
}

// 处理表单提交请求
function handleFormSubmit() {
    if (checkDuplicateSubmit()) {
        echo "请勿重复提交表单";
        return;
    }
    // 处理正常请求
    echo "表单提交成功";
}

// 生成表单
function generateForm() {
    $token = preventDuplicateSubmit();
    echo <<<HTML
    <form method="post" action="submit.php">
        <input type="hidden" name="token" value="$token">
        <!-- 表单其他字段 -->
        <button type="submit">提交</button>
    </form>
    HTML;
}

// 页面中显示表单并处理提交
generateForm();
handleFormSubmit();
ログイン後にコピー

上の例では、一意の識別子が、preventDuplicateSubmit 関数を通じて生成され、セッションに保存されます。フォームが送信されると、識別子が非表示フィールド (トークン) としてリクエストに追加され、リクエストされたトークンがセッションに保存されたトークンと一致するかどうかがチェックされます。

上記の揺れ防止および再送信防止技術により、Web アプリケーションのユーザー エクスペリエンスとセキュリティを向上させることができます。実際の開発では、特定のニーズやビジネス シナリオに応じて、実際のニーズに合わせてさまざまなシナリオに適切な調整や拡張を行うことができます。

具体的なコード例が上に示されていますが、コードの安定性とセキュリティを確保するために、ドキュメントを注意深く読み、使用前にテストすることをお勧めします。

以上が手ぶれ防止と重複送信防止: PHP 開発の必須スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win10のメモ帳の拡張子を変更する方法 Win10のメモ帳の拡張子を変更する方法 Jan 04, 2024 pm 12:49 PM

メモ帳を使用する場合、さまざまな処理が必要になるため、メモ帳の拡張子を変更する必要がありますが、拡張子を変更するにはどうすればよいでしょうか?実際には、拡張子を変更するには名前変更機能を使用するだけです。 Win10 メモ帳の拡張子を変更する方法: 1. フォルダー内で、まず上部をクリックして確認します。 2. このようにファイルの拡張子が表示されるので、メモ帳上で右クリックして選択します 3. 選択. 以下のように変更します。 4. .jpeg 形式に変更された場合。次に、プロンプトが表示されるので、それをクリックします。 5. 変更が完了したら、それだけです。

HTMLをMP4形式に変換する方法 HTMLをMP4形式に変換する方法 Feb 19, 2024 pm 02:48 PM

タイトル: HTML を MP4 形式に変換する方法: 詳細なコード例 日常の Web ページ制作プロセスでは、HTML ページまたは特定の HTML 要素を MP4 ビデオに変換する必要がよく発生します。たとえば、アニメーション効果、スライドショー、またはその他の動的要素をビデオ ファイルとして保存します。この記事では、HTML5 と JavaScript を使用して HTML を MP4 形式に変換する方法と、具体的なコード例を紹介します。 HTML5ビデオタグとCanvasAPI HTML5の概要

SQLトリガーを呼び出して外部プログラムを実行する SQLトリガーを呼び出して外部プログラムを実行する Feb 18, 2024 am 10:25 AM

タイトル: 外部プログラムを呼び出す SQL トリガーの具体的なコード例 本文: SQL トリガーを使用する場合、特定の操作を処理するために外部プログラムを呼び出す必要がある場合があります。この記事では、SQL トリガーで外部プログラムを呼び出す方法と具体的なコード例を紹介します。 1. トリガーを作成する まず、データベース内のイベントをリッスンするトリガーを作成する必要があります。ここでは「注文テーブル(order_table)」を例に挙げますが、新規注文が挿入されるとトリガーが起動し、外部プログラムが呼び出されて操作が実行されます。

ダンプファイルの解凍方法 ダンプファイルの解凍方法 Feb 19, 2024 pm 12:15 PM

ダンプ ファイルの取得方法 コンピュータ システムにおいて、ダンプ ファイルとは、システムの動作状態やデータを記録するファイルです。ソフトウェア開発やシステムのトラブルシューティングでは、ダンプ ファイルを取得すると、プログラム開発者やシステム管理者がプログラムのクラッシュ、メモリ リーク、システム異常などのさまざまな問題を分析および診断するのに役立ちます。この記事では、ダンプ ファイルを取得するための一般的な方法とツールをいくつか紹介します。 1. タスク マネージャーを使用して Windows システムでダンプ ファイルを取得する方法: Windows オペレーティング システムでは、

Windows 12のリリース日 Windows 12のリリース日 Jan 05, 2024 pm 05:24 PM

以前に win11 が正式にリリースされ、多くのユーザーがすでに win12 を楽しみ始めており、win12 がいつリリースされるのか知りたがっていますが、実際には、ルールによれば 2024 年頃にリリースされる予定です。 win12 はいつリリースされましたか: A: Win12 は 2024 年の秋頃にリリースされる予定です。 1. Microsoft の最新速報によると、win12 は 2024 年の秋にリリースされる予定です。 2. そして、今回の win12 には複数の新しいデザインコンセプトが導入され、見た目の美しさと見た目がさらに改善されます。 3. 最新の開発者会議で、Microsoft 開発者は、タスクバーに浮遊感を与えるフローティング タスクバーを作成することを明らかにしました。

NVIDIA コントロール パネルの役割は何ですか? NVIDIA コントロール パネルの役割は何ですか? Feb 19, 2024 pm 03:59 PM

NVIDIA コントロール パネルとは何ですか? コンピューター技術の急速な発展に伴い、グラフィックス カードの重要性がますます高まっています。世界有数のグラフィックス カード メーカーとして、NVIDIA のコントロール パネルはさらに注目を集めています。では、NVIDIA コントロール パネルは具体的に何をするのでしょうか?この記事ではNVIDIAコントロールパネルの機能や使い方を詳しく紹介します。まず、NVIDIA コントロール パネルの概念と定義を理解しましょう。 NVIDIA コントロール パネルは、グラフィック カード関連の設定を管理および構成するために使用されるソフトウェアです。

Windows 7 デスクトップの表示比率を調整する方法 Windows 7 デスクトップの表示比率を調整する方法 Dec 27, 2023 am 08:13 AM

win7を使っている友達が多いのですが、パソコンで動画や資料を見るときに比率を調整する必要があるのですが、どうやって調整すればいいのでしょうか?詳しい設定方法を見ていきましょう。 win7 のデスクトップの表示比率を設定する方法: 1. コンピューターの左下隅をクリックして、「コントロール パネル」を開きます。 2. 次に、コントロールパネルで「外観」を見つけます。 3. 外観を入力したら、「表示」をクリックします。 4. その後、希望の表示効果に応じてデスクトップのサイズと表示を調整できます。 5. 左側の「解像度の調整」をクリックすることもできます。 6. 画面解像度を変更して、コンピュータのデスクトップの比率を調整します。

中国語の入力方法における全角と半角の役割 中国語の入力方法における全角と半角の役割 Mar 25, 2024 am 09:57 AM

全角と半角は中国語の入力方法における一般的な概念であり、異なる文字幅を表します。コンピュータの分野では、全角と半角の概念は主に、画面上または印刷物上で漢字や英語の文字が占めるスペースのサイズを表すために使用されます。まず、全角と半角はもともとタイプライターの時代に生まれました。タイプライターでは通常、中国語の文字は全角で表示され、英語の文字は半角で表示されます。これは、漢字の幅が比較的広く、全角にすると記事全体が美しく見え、レイアウトがコンパクトになるためです。英語の文字は、

See all articles