ホームページ バックエンド開発 PHPチュートリアル async和DOM Script文件加载比较_php技巧

async和DOM Script文件加载比较_php技巧

May 16, 2016 pm 08:39 PM
async dom script

目前我用demo.js作为执行文件操作.代码:

var now = function() { return +(new Date()); }
var t_s = now();
while(now() - t_s < 2000) { }
ログイン後にコピー

用sleep.php作为请求文件操作。代码:

<&#63;php
  sleep(3);
  echo 'var bb';
&#63;>
ログイン後にコピー

1. 一般script标签加载

<script src="demo.js"></script>
<script src="sleep.php"></script>
ログイン後にコピー

在浏览器加载情况: 图1-1. 下载阻塞DomReady 图1-2. 执行阻塞DomReady


图1-1. 下载阻塞DomReady


图1-2. 执行阻塞DomReady

2. async属性

async是html5中新增的属性,它的作用是能够异步下载脚本文件,不阻塞DOMReady。

每一个async属性的脚本都在它下载结束之后立刻执行,同时会在window的load事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况

支持async浏览器: Firefox 3.6+, IE 10+, Chrome 2+, Safari 5+, iOS 5+, Android 3+

<script src="demo.js" async></script>
<script src="sleep.php" async></script>  
ログイン後にコピー

在浏览器中加载的情况:


图2-1 异步下载 不阻塞DomReady 阻塞load事件


图2-2 执行阻塞load事件


图2-3 IE9不支持async属性下载阻塞DomReady

3. DOM Script动态加载

文档对象模型(DOM)允许您使用 JavaScript 动态创建 HTML 的几乎全部文档内容。 script元素与页面其他元素一样,可以非常容易地通过标准 DOM 函数创建:

var loadScript = function(url) {
 var s = document.createElement('script');
 s.type = 'text/javascript';
 s.async = 'true';
 s.src = url;
 document.getElementsByTagName('head')[0].appendChild(s); 
}
// 加载js文件脚本
loadScript('sleep.php');
loadScript('demo.js');
ログイン後にコピー

在浏览器中加载的情况:


图3-1 下载阻塞load事件


图3-2 执行阻塞load事件


图3-3 IE9不阻塞load事件

小结

async和script动态加载在现代浏览器中加载的情况是一致的。前者使用简单,后在兼容性方面更好。 异步加载文件还有很多方法,ajax(会受到同源限制)、iFrame、img…

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

非同期は es6 または es7 用ですか? 非同期は es6 または es7 用ですか? Jan 29, 2023 pm 05:36 PM

非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

Vue3 で DOM ノードを取得する方法は何ですか? Vue3 で DOM ノードを取得する方法は何ですか? May 11, 2023 pm 04:55 PM

1. ネイティブ js は DOM ノードを取得します。 document.querySelector (セレクター) document.getElementById (id セレクター) document.getElementsByClassName (クラス セレクター).... 2. vue2 で現在のコンポーネントのインスタンス オブジェクトを取得します。コンポーネント インスタンスには、対応する DOM 要素またはコンポーネントへの参照を保存する $refs オブジェクトが含まれています。したがって、デフォルトでは、コンポーネントの $refs は空のオブジェクトを指します。まず ref="name" をコンポーネントに追加してから、this.$refs を渡します。

スクリプトってどういう意味ですか? スクリプトってどういう意味ですか? Aug 29, 2023 pm 02:00 PM

スクリプトとは台本、台本という意味です。映画、テレビ、ドラマ、その他の芸術形式では、脚本は登場人物の会話、行動、シーン、ストーリーの展開や構造を記述するために使用されます。脚本を書くには一定のスキルと経験が必要で、観客の注意を引き付け、物語の感情やテーマを伝えることができる、鮮やかで力強いものでなければなりません。脚本は映画やテレビ業界で特に重要であり、創作の基礎となり、映画のストーリー、キャラクター展開、会話の内容を決定します。脚本は、アーティストが自分自身を創作し、表現するための重要なツールです。

PHP での DOM 操作ガイド PHP での DOM 操作ガイド May 21, 2023 pm 04:01 PM

Web 開発において、DOM (DocumentObjectModel) は非常に重要な概念です。これにより、開発者は要素の追加、削除、変更など、Web ページの HTML または XML ドキュメントを簡単に変更および操作できるようになります。 PHP に組み込まれている DOM 操作ライブラリも開発者向けに豊富な機能を提供していますので、この記事では、皆様のお役に立てればと思い、PHP での DOM 操作ガイドを紹介します。 DOM の基本概念 DOM は、クロスプラットフォームで言語に依存しない API です。

vue dom とはどういう意味ですか? vue dom とはどういう意味ですか? Dec 20, 2022 pm 08:41 PM

DOM はドキュメント オブジェクト モデルであり、HTML プログラミング用のインターフェイスであり、ページ内の要素は DOM を通じて操作されます。 DOM は HTML ドキュメントのメモリ内オブジェクト表現であり、JavaScript を使用して Web ページと対話する方法を提供します。 DOM は、ドキュメント ノードをルートとするノードの階層 (またはツリー) です。

vue3 で dom またはコンポーネントへの ref バインディングが失敗する理由とその解決方法は何ですか? vue3 で dom またはコンポーネントへの ref バインディングが失敗する理由とその解決方法は何ですか? May 12, 2023 pm 01:28 PM

Vue3ref バインディング DOM またはコンポーネントの失敗理由分析シナリオの説明 Vue3 では、コンポーネントまたは DOM 要素をバインドするために ref を使用することがよくありますが、関連するコンポーネントをバインドするために ref が明確に使用されていることがよくありますが、ref バインディングが失敗することがよくあります。 ref バインディングが失敗する状況の例 ref バインディングが失敗するほとんどのケースは、ref がコンポーネントにバインドされているときにコンポーネントがまだレンダリングされていないため、バインディングが失敗することです。または、コンポーネントが最初にレンダリングされず、ref がバインドされていない場合、コンポーネントのレンダリングが開始されると、ref もバインドされ始めますが、ref とコンポーネントの間のバインディングが完了していません。このとき、問題が発生します。コンポーネント関連のメソッドを使用する場合。 ref にバインドされたコンポーネントが v-if を使用するか、その親コン​​ポーネントが v-if を使用してページに

vue3+async-validator がフォーム検証を実装する方法 vue3+async-validator がフォーム検証を実装する方法 May 11, 2023 am 09:55 AM

vue3 プロジェクトの構築 プロジェクトを作成する前に、最初に説明する必要があるのは、使用するバージョンが Nodejs: v17.5.0pnpm: 7.0.0Vue: 3.2.25 であることです。まず、Vite で FormValidate という名前の vue3 プロジェクト デモを作成します。コマンド ラインに pnpmcreateviteFormValidate コマンドを入力して Enter キーを押し、vue を選択して Enter キーを押し続けます。これは、最初に FormValidate (フォーム検証) プロジェクトを作成したことを示します。コマンド ライン プロンプトに従って、プロジェクトのルート ディレクトリを入力し、次に、コマンド pnpminstall を使用して、プロジェクトに必要な依存関係をインストールします。もちろん、ここで pnpm を使用する方が n よりも優れています。

スクリプトとは何ですか スクリプトとは何ですか Oct 12, 2023 am 10:04 AM

コンピューター サイエンスの分野では、「スクリプト」は通常、スクリプト言語またはスクリプト ファイルを指します。スクリプト言語は、自動化、バッチ処理、ラピッド プロトタイピングなどのタスクによく使用されるインタープリタ型プログラミング言語です。

See all articles