Baidu 検索を頻繁に使用する学生は、入力ボックスのドロップダウン インデックスを絶対に無視することはありません。これは非常に便利ですが、この非同期テクノロジには、フロントエンドでの同時サーバー リクエストが必要になるという課題があります。 . Siege エンジニアは、ajax メッセージの数をできる限り減らす必要があります。この記事とは無関係のように聞こえるかもしれませんが、そうではありません。まずはBaiduの無料広告を作ってみましょう。 Baidu のホームページで「フロントエンド」という単語を入力し、chromebug を使用すると、送信された応答が簡単に表示されます。
Baidu は、obj パラメーターを含む sug メソッドを返すことによってドロップダウン データをレンダリングしようとします。ページを更新せずに再度「フロント エンド」に入ると、同様のリクエストは発生しません。これは、それらが非常に A なキャッシュ オブジェクトであることを示しています。その機能は、要求されたオブジェクトを一時的に保存することです。後で同じ単語が入力されると、一致が成功した後、オブジェクトの値が直接読み取られます。より多くのリクエストがサーバーに送信されるため、コストが効果的に節約されます。
本当の主役である hasOwnProperty メソッドについて話しましょう。
jser は hasOwnProperty を知らない人ではないと思います。私はここで川のほとりで水を売っているだけです。
これはオブジェクト専用であり、オブジェクトのキーに属性が存在するかどうかを判断するために使用されます。戻り値はブール値です。以下に例を示します:
これを理解すると、hasOwnProperty の威力を理解するだけでは十分ではないと思われるので、Baidu ドロップダウンの例を簡単に再現してみましょう:
この方法では、より多くのキー値が保存されるにつれて、キャッシュされたオブジェクト データによって占有されるメモリが増加することに疑問を抱く同僚もいます。つまり、サーバー側のリクエストを保存するには、他のものを犠牲にする必要があるということです。実際、キャッシュ オブジェクトが占めるスペースは、ページに保存されると通常は無視されます。リフレッシュされると破壊されます。ただし、別の解決策を提供して、このオブジェクトのピーク値に同意することもできます。たとえば、最大 100 個のキーと値のペアのみを保存でき、その数が 100 個を超えた場合は、削除演算子を使用して最初の 10 個の保存キーを削除します。あるいは、この問題を避けるために単にストレージを使用しないこともあります。
hasOwnProperty メソッドは、オブジェクト検出で特によく使用されます。もちろん、興味のある学生は、hasOwnProperty の拡張バージョンであり、独自のプロパティとプロパティの列挙可能性を検出できます。これ以上詳しく説明しません。