このシナリオでは、JavaScript ウィジェットの beforecreate 関数は、Ajax 応答に基づく項目の作成を防ぐ必要があります。ただし、jQuery のデフォルトの Ajax リクエストは非同期です。
Ajax リクエストを同期にするには、async オプションを false に指定します。 jQuery $.ajax 関数。これにより、マザー関数が続行する前にコールバックが確実に実行されます。
beforecreate: function (node, targetNode, type, to) { jQuery.ajax({ url: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value), success: function (result) { if (result.isOk == false) alert(result.message); }, async: false }); }
async を false、jQuery は同期 Ajax リクエストを実行します。つまり、コールバックはサーバーが応答した直後に呼び出されます。これにより、beforecreate 関数が続行される前にコールバックで必要なデータを設定できるようになり、Ajax 応答に基づいて項目の作成を防止するという望ましい機能が提供されます。
以上がウィジェットの作成を制御するために jQuery Ajax リクエストを同期するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。