2017-07-27 11 views
-1

最初にロードするときにDOMを更新しないWebサイトがあります。たとえば、YouTubeにアクセスして動画をクリックしたり、Google Playにアクセスしてアプリをクリックしたりすると、DOMのメタ要素に「説明」という名前を読み込んだ場合、そのサイトの一般的な説明が表示されます。しかし、ページをリフレッシュすると、その特定のアイテムの詳細な説明が表示されます。ページのソースを表示すると、更新情報も表示されますが、これは更新を行うのと同じようです。DOMは更新時にのみ更新されるのはなぜですか?

私のアプリはページの説明を抽出する必要があるので、このような問題はわかりますが、これらの説明では、更新が完了するまで実際の説明は表示されません。そして、私は確かにその情報を得るためにユーザーのページをリフレッシュするつもりはない。

YouTubeやGoogle Playがこれを行う理由を理解できません。これはChromeの一部(これは私が使用しているもの)ですか、またはこのアップデートはいくつかのjavascriptで行われていますが、DOMをバイパスするよう管理していますか?

+0

しかし、これは、Ajaxを使用して説明のようなものを取得するときにDOMが更新されない理由を説明していません。 javascriptはメタタグの「content」属性を更新する責任があり、明らかにこれらのサイトはそれをしません。 – AndroidDev

答えて

1

おそらく彼らはAjaxとHistory APIを使用して、新しいページを完全にロードせずにページの内容を更新し、表示されたURLを変更するとします。効果的にウェブサイトをシングルページアプリケーションとして実行する。

残念ながら、更新されていないようにも聞こえますすべてあなたは気にする必要のないメタ要素を残しています(おそらくごく少数の人が気になるので、主にロボットのために存在します) 。

データがブラウザに送信されていないため、HTTPリクエストを取得せずにデータを取得することはできません。

+0

私は、Ajax呼び出しが行われてもChromeが自動的にそのDOMを更新すると仮定しています。それは事実ではないようです。 – AndroidDev

+0

@AndroidDev - JavaScriptプログラマがそれを更新すべきと言ったものにDOMを更新します。答えの中で述べたように、プログラマはたぶんmeta要素を更新するのを邪魔しなかったでしょう。 – Quentin

関連する問題