ユーザーがリンクを公開できるサイトがあります。ユーザーはフォームに次の 2 つのフィールドを入力します。
- 題名
- URL
ユーザーが「送信」をクリックすると、提供されたリンクの画像を探してサムネイルを作成するクローラーがあります。
問題は、クローラーが通常、サムの読み込みとトリミングを完了するのに約 5 ~ 10 秒かかることです。
このようなajax呼び出しができると思いました。ご覧のとおり、ユーザーが最初にリンクを送信すると、その有効性 (最初の ajax 呼び出し) を確認し、成功した場合は別の ajax 呼び出しを実行して、このリンクの画像を見つけて保存しようとします。
私の考えは、ユーザーをlinks.phpページに移動している間にそれを行うことでしたが、このようにすると、AJAX呼び出しが中断され、関数がsave_image.php
実行されないことがわかりました。
ユーザーがプロセスを待たないようにするにはどうすればよいsave_image.php
ですか? このプロセスを実行する必要がありますが、返されるデータは必要ありません。
$.ajax({
url: 'publish/submit_link.php',
type: 'POST',
dataType: 'JSON',
data: {
link : link,
title : title,
},
success: function (data) {
if (data)
{
$.ajax({
url: 'publish/save_image.php', type: 'POST',
data: {
id : data.id,
type : data.type,
url : url,
csrf_test_name : csrf
}
});
}
//THIS NEXT LINE BREAKS SECOND AJAX CALL
window.location = 'links.php';
}
});
前もって感謝します!
まとめ:ユーザーにリンクを送信してもらい、そのリンクのサムネイルが生成されている間にユーザーをリンク ページにリダイレクトするようにします。サムネイルをユーザーに表示したくありません。