4

JSON文字列を使用してデータを提案するjQueryプラグインを使用しています。

JSON文字列の要素がX未満の場合は、すべて正常に機能します。この制限を超えると何も起こりません。オートサジェストは失敗します。ある種の解析制限があるからだと思いますが、どうすればこれを回避できますか?+5000要素の配列があります...

これが私のjsonコードです:

var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';

ありがとうございました !

4

3 に答える 3

3

$.getJSON()は、ブラウザごとに長さを変えることで制限されるGET方法を使用しています。したがって、あなたの場合、返される結果は明らかにその制限を超えています。あなたがしたいのは変化です

$.getJSON(settings.url,{search:text},function(data){if(data){buildResults(data,text);}
else{$(results).html('').hide();}});

プラグインのソースコードで

$.post(settings.url,{search:text},function(data){if(data){buildResults(data,text);}
else{$(results).html('').hide();}},'json');

POST代わりにリクエストを実行します。また、サーバー側スクリプトで、グローバル$_GET配列への参照を変更する必要があります(存在する場合) 。$_POST

于 2012-11-16T18:00:03.553 に答える
1

さて、私はついにこの問題の原因を見つけました。単純な引用符が原因で解析エラーが発生しました...すべての引用符がすでにエスケープされているのに、なぜ特定の数の要素でのみ発生し始めたのか、私に聞かないでください。

さて、私はこれを変更しました:

var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]';

var SearchTxt = [{"t":"word one"},{"t":"word two"}, ...];

そしてそれはうまくいった。

于 2012-11-20T09:05:11.843 に答える
0

JSONには「解析制限」はありません。制限は、JSONリクエストを解析するサーバーによって設定されます。

于 2012-11-16T16:16:35.410 に答える