2016-12-30 7 views
1

Trip Advisorウィジェットを遅延または非同期にロードしようとしていますが、何らかの理由でそれが機能していません。Trip Advisorスクリプトを延期する

Trip Advisorスクリプトがdocument.writeコマンドを実行するため、asyncまたはdeferが機能しない可能性があります。ここで

はトリップアドバイザーからウィジェットJSです:https://www.tripadvisor.co.uk/Widgets-g186338-d187591-The_Ritz_London-London_England.html#w-selfserveprop

誰もが、このスクリプトは、よりパフォーマンスにする方法を助言することはできますか?あなたが延期または非同期を試してみる場合は、彼らがウィジェットを破るように見える参照してくださいよhttps://jsbin.com/cawivusecu/edit?html,output

- ここ

はJSBinサンドボックス内のスクリプトです。

は、ここで参考のためにトリップアドバイザーから敬遠しがちコードです:

<div id="TA_selfserveprop20" class="TA_selfserveprop"> 
<ul id="wzAgNPZ2m6a" class="TA_links TEBLjL9Mu"> 
<li id="Cp4AmQch" class="w7hHfpS"> 
<a target="_blank" href="https://www.tripadvisor.co.uk/"><img src="https://www.tripadvisor.co.uk/img/cdsi/img2/branding/150_logo-11900-2.png" alt="TripAdvisor"/></a> 
</li> 
</ul> 
</div> 
<script src="https://www.jscache.com/wejs?wtype=selfserveprop&amp;uniq=20&amp;locationId=187591&amp;lang=en_UK&amp;rating=true&amp;nreviews=5&amp;writereviewlink=true&amp;popIdx=true&amp;iswide=false&amp;border=true&amp;display_version=2"></script> 

答えて

0

あなたはdocument.write()を使用するスクリプトなどのロードを延期することはできません。 document.write()の性質は、パーサーが文書の適切な場所にあるときに実行する必要があることを意味します。つまり、パーサーが使用されているスクリプトの場所とロードされた場所を変更できないことがよくあります。

さらに、文書が解析されると、documentオブジェクトが閉じられ、その後、現在の文書が消去され、新しい空の文書が開かれます(document.write())。つまり、遅延スクリプトでdocument.write()が実行された場合に起こります。

スクリプトを変更してdocument.write()を削除できない場合は、その読み込みを延期することはできません。

関連する問題