これらの2つのツールを使用すると、奇妙なバグが発生します。APIに対してAJAXクエリを作成してから、localStorage内に保存され、オートコンプリートパネルに表示されるJSONデータを取得しています。問題は、オートコンプリートソースの出所に応じて、パネルの反応が異なることです。
AJAXの成功時に呼び出されるコールバック関数は次のとおりです。
function _company_names(data)
{
localStorage.setItem('ac_source', JSON.parse(data).Result);
// Works fine
$("#search_input").autocomplete( "option", "source", JSON.parse(data).Result);
// Send an AJAX request
$("#search_input").autocomplete( "option", "source", localStorage.getItem('ac_source'));
}
結果としてJSON.parse(data).Resultをオートコンプリートソースに渡すと、問題ありません。ただし、localStorage.getItem('ac_source')を渡すと、acウィジェットは風に吹かれて(自分の関数を使用せずに)AJAXリクエストを送信します(私のnode.jsはそれを解析しようとしますなど)。
ローカルストレージを使用して、コードの他の部分からこれらのデータにアクセスしています(他のユーザー調査と比較するために保存し、リクエストが同じ場合は表示します)。