私は自分のビューに入れているデータのリストを持っており、各リストアイテムにはIDがあります。AJAXはループ内で呼び出します
これらのリスト項目のそれぞれは棒グラフであり、少なくとも1人のユーザーが行くバーごとに作成されたドキュメントがあります。ユーザーがいないバーでは、作成されたドキュメントはありません。
私は文書が存在する場合、どのように多くのユーザーがに従って行っている)文書はそのリスト項目 IIのために存在している場合)
私を確認するために、データベースへの各リスト項目のためのAJAX呼び出しを行う必要があります資料。
whileループの更新がAJAX呼び出しのコールバックに含まれていた解決策を試みました。ここで私は、私はエラーを得た、関数を実行しようとしたコード
function updateAllGoingButtons(){
var i = 0;
var dataToPass = {};
var numButtons = global_data_object.listData.businesses.length;
while(i < numButtons){
dataToPass.button = global_data_object.listData.businesses[i].id;
dataToPass = JSON.stringify(dataToPass);
ajaxFunctions.ready(ajaxFunctions.ajaxRequest('POST', '/update-buttons', dataToPass, function(data){
console.log(i);
i++;
}));
}
}
は私がやろうとしています何をやって行くには良い方法があり、そのため、
Request entity too large
のですか?私は約束を使うべきですか?または、whileループ内からAJAX呼び出しを行う方法でエラーが発生しているだけですか?
は参考のため、ここではそれはあなたが内の非同期呼び出しを行うことができ、それぞれの方法を持っている、あなたが非同期と呼ばれるNPMライブラリをチェックアウトする必要がありますajaxRequest機能
'use strict';
var appUrl = window.location.origin;
var ajaxFunctions = {
ready: function ready (fn) {
if (typeof fn !== 'function') {
return;
}
if (document.readyState === 'complete') {
return fn();
}
document.addEventListener('DOMContentLoaded', fn, false);
},
ajaxRequest: function ajaxRequest (method, url, data, callback) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
callback(xmlhttp.response);
}
};
xmlhttp.open(method, url, true);
xmlhttp.setRequestHeader('Content-type', 'application/json');
xmlhttp.send(data);
}
};
はいいいえ約束を使用することをお勧めします...約束は常にajaxの呼び出しを処理する最良の方法です。 – Geeky
'要求エンティティが大きすぎます。 'というエラーはあなたの' while'ループに接続されている場所ではありません。あなたが他の仕組みを持っていても来るでしょう。 – vijayP
@vijayP - 非同期ライブラリを使用しても、私は同じエラーを受け取りますか? –