タグ:同期・非同期:記事一覧
このサイトはWordPressですが、テーマを自作しています。 そのためファーストビューで使用するクリティカルcssをインラインで書き込む等の処置をしています。しかし、PageSpeed InsightsでWebページの読み込み速度を採点してみたところ、cssの読み込みで問題を指摘されてしまいました。対処としてcssを非同期読み込みしました。 その理由と方法、変更結果についてお伝えします。
JavaScriptのasyncとawaitというキーワードは、非同期処理を簡潔に記述することができます。しかしプログラムの流れを変えてしまう面もあり、理解するのが難しい機能でもあります。そこで今回は、asyncとawaitについて解説します。
JavaScriptで非同期するならPromiseオブジェクトが楽。ですがネット上での解説ってわざと難しく書いているように気がします。そこで今回は、Promiseオブジェクトの使い方を僕なりに解説してみます。
JavaScriptでプログラムをしていると非同期処理を頻繁に使用します。そのため非同期処理の知識が必要なのですが、知らなくてもコードは組めます。だからあまり気にしていなかったのですが、同じような言葉に並列処理というものがあることに最近気が付きました。そうなると違いが気になってきます。そこで並列処理と非同期処理および同期処理の違いについて、調べてみました。
SharedArrayBufferを使用すると異なるスレッド間で同じメモリ領域を共有することができます。使い方によっては効率の良いアプリケーションを作成できます。しかし脆弱性を指摘されていることから、ブラウザでの使用に制限がかかっています。
仕様書(ECMAScript)上では、JavaScriptは同期/非同期に関係なく、一つのスレッドで動作することになっていて、並列処理を行う機能は定義されていません。しかし現行のブラウザの多くは、Web WorkerというAPIが組み込まれていて、これを利用することで並行処理を実現することができます。この記事は、実際使ってみたら、とても簡単に並列処理できたよというお話です。
Node.jsでコンソール(標準入力)からの入力を、エンターが押されるまでの文字列として取得する方法と、一文字ごとに受け取る方法をお伝えします。
JavaScriptにはタイマー監視に関するsetTimeoutとsetIntervalメソッドが用意されています。これらはコールバック関数により通知されます。Node.jsにもこの機能がありますが、Promise機能を使用したタイマー監視も用意されていて、見通しの良いコード作成に役立てることができます。ここでは、Promise機能を使用したタイマーについてお伝えします。
JavaScriptは反復処理を非同期におこなう非同期イテレータという機能があります。そこで通常のイテレータとの違いを含めて非同期イテレータについてお伝えします。また発展形である非同期ジェネレーターについてもお伝えします。
JavaScriptでsleepやwait機能を実現させるためのコードを紹介します。 基本的にコピペで実装できますが、仕組みを知っておくとJavaScriptの理解を深めることができます。 まずはコード例から紹介しているので、お急ぎの型はコピペで実装してください。 理解を深めたい方は、少し詳しく解説しているので、最後まで読んでみてください。
Node.jsの実行結果をコンソールに出力するとき、時間のかかる処理の進捗をプログレスバーで表現するのは常套手段と言えます。そこで今回は、Node.jsでプログレスバー表示する方法をお伝えします。
JavaScriptは元々ブラウザでの動作を想定しているので、言語仕様として終了時の処理が定義されていません。しかしNode.jsでは、プログラム終了時に後処理をおこないたいケースがあります。そこで、Node.jsでの終了処理の方法をお伝えします。
Node.jsの実行結果をコンソールに出力するとき単純に文字を表示するのではなく、色を付けるなどするとメリハリがでてそれなりに見た目がよくなります。そこで今回は、Node.jsの出力結果に色や装飾をおこなう方法をお伝えします。
ディスクの使用量が増えてくると、個々のディレクトリの使用サイズを確認して、多いところから減らしていくことがよくあります。Linuxなどはそのためのコマンドが用意されてますが、Windowsはありません。そこで、Node.jsでディレクトリの使用サイズを確認できるコードを組んでみます。
forEach内でawaitを使用して非同期処理の終了を待つコードを作成したら、想定した動作になりませんでした。どうしてなのか、その理由と解決方法を探っていきます。
for-await-ofはfor-ofと基本的には同じ動作をしますが、受け取ったデータがPromiseオブジェクトの場合は、履行されるのを待ち、結果をループの値として返します。