###前提と質問
・サイト内でAPI検索結果を表示します。
・API使用先に迷惑がかからないよう連続の実行を防ぎたいと考えています。
・WordPressです。
何かいい方法ありませんでしょうか?
###条件
検索はAJAXで実行され、ログインユーザー、非ログインユーザーのいずれもが可能なので、以下のようにwp_ajax
もwp_ajax_nopriv
も使っています。
php
1add_action( 'wp_ajax_nopriv_my_ajax_search_api', 'my_ajax_search_api' ); 2add_action( 'wp_ajax_my_ajax_search_api', 'my_ajax_search_api' ); 3function my_ajax_search_api(){ 4 // apiを使った検索結果を返す 5}
###草案
これに際して私が思いついたのは、いずれのユーザーにも発行されるナンスを使う方法で、次の流れです。
①サイト訪問時にユーザーにナンス発行
↓
②ユーザーが検索を実行
↓
③独自テーブルにナンスと実行時間を保存
↓
④そのナンスの実行時間が1秒以内なら処理停止、1秒以上なら検索開始
↓
⑤結果をJSへechoする
しかしこの方法ですと、③のためにわざわざ独自テーブルを作らないといけない点でなんとなくしっくりきません。
または③を独自テーブルでなくfile_put_contents
とする案も考えましたが、やはり…どうなのでしょうか。
もっと便利な、ないし適切な方法があるのではと思い、有識者さまのご意見を求めています。
アドバイス宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/18 02:52
2020/11/18 03:14
2020/11/18 03:21
2020/11/18 03:31
2020/11/18 03:37