⇧ 何と言うか、コストの観点からしたら、オンプレミスで構築した方がよい場合もあるからして、全てをクラウドありきで考えられても困るんだが...
特に円安、クラウドサービスの値上げ、とかある中で、本当にクラウドの方が低コストと言えるのか甚だ疑問なんだが...
Microsoftなんかは、
日本マイクロソフト株式会社は、2024 年 4 月 1 日から、法人向けソフトウエアおよびクラウドサービスの価格を改定します。新価格は、日本円の為替変動に伴い、いずれも 20% の引き上げとなり、2024 年 4 月以降に適用されます。
https://news.microsoft.com/ja-jp/2023/12/06/231206-information/
⇧ 白れっと20%値上げしてますし…
jQuery 4.xで遂にIE 10以前のサポートを終了するそうな。Ajaxについても整理してみる
何やら、
JavaScriptライブラリ「jQuery」の公式ブログは現地時間2月6日、「jQuery 4.0.0」ベータ版のリリースを発表した。「jQuery 4.0.0」ベータ版では古いブラウザやAPI、機能のサポート終了などによりパッケージ容量をスリム化するほか、古くから問題となっていたフォーカス系イベント処理順序を確定し、新規にバイナリデータ型とセキュリティ仕様「Trusted Types」などをサポートしている。
IE 10以前のサポートを終了する他、古いブラウザ関連コード、複数の非推奨のAPI、自動JSONPプロモーションなど不用な機能を削除することでパッケージ容量を削減。jQueryプロトタイプArrayメソッド「push」「sort」「splice」などは、例えば$elems.push( elem )が[].push.call( $elems, elem )のように配列関数へと切り替えられている。
⇧ とのこと。というか、IE11はサポート継続という感じなんかね?
まぁ、確かに、社内システムなんかで、IEを使ってるようなこともありそうですからな...
お医者さんの使ってるPCがWindows XPとか普通に見かけますしな、システムの都合上なのかもしらんけど...
話が脱線しましたが、
⇧ jQueryのGitHubを覗いてみた感じでは、活発に活動している感じですな。
jQueryはAjaxを実現する時に、シンプルにコーディングできるというのが便利だったのだけど、
⇧ 上記サイト様にありますように、Fetch APIが導入されたことで、jQueryを使わなくてもAjaxのような非同期処理のリクエストがシンプルに記述できるようになったと。
Ajaxはと言うと、
Ajax(エイジャックス、アジャックス)は、ウェブブラウザ内で非同期通信を行いながらインターフェイスの構築を行うプログラミング手法である。XMLHttpRequest(HTTP通信を行うためのJavaScript組み込みクラス)による非同期通信を利用し、通信結果に応じてダイナミックHTML (DHTML) で動的にページの一部を書き換えるというアプローチを取る
⇧ とありますと。
で、Fetch APIはと言うと、
フェッチ API
フェッチ API は(ネットワーク越しの通信を含む)リソース取得のためのインターフェイスを提供しています。 XMLHttpRequest
と似たものではありますが、より強力で柔軟な操作が可能です。
概念と利用方法
フェッチでは、 Request
および Response
オブジェクト(およびネットワークリクエストに関わるその他のもの)の汎用的な定義が提供されています。これにより、サービスワーカー、キャッシュ API、リクエストやレスポンスを処理または変更するその他の類似のもの、またはプログラム的にレスポンスを生成する (つまり、コンピュータプログラムまたはパーソナルプログラミング命令を使用する) 必要があるあらゆる種類の利用法など、将来的に必要とされるあらゆる場所で使用できるようになります。
jQuery との違い
fetch
は主に 3 つの点で jQuery.ajax()
と異なります。
⇧ う~む、jQueryとの違いが分かり辛いな...
「フェッチ API」と「jQuery」を2つ横並びにして対比表のような形にしてくれた方が比べ易いんだけどな。
By the way、JavaScriptフレームワークのReactとか使っている場合に、「React Query」というライブラリがあるのですが、
React Queryがデータフェッチライブラリでないことは、実際にコードを見ればすぐにわかります。下の画像によると、queryFnではaxiosが使用されています。なぜでしょう。
これがReact Queryがデータフェッチを責務としていないことの証拠です。
React Queryはどのようにデータが取得されるかに関心がありません。 唯一関心があるのは、queryFnにPromiseが返却されることだけです。そのため、データフェッチにはaxiosを用いてもfetchを用いても問題はありません。
⇧ HTTP clientとしては、「fetch API」か「axios」が利用されてるそうな。
そして、
axiosの場合はIE11をサポートしているので、redaxiosより10倍以上もファイルサイズが大きくなっている。
⇧「axios」を軽量化した、「redaxios」なるライブラリもあるそうな。
話が脱線しましたが、「fetch API」が導入されたことで、外部のライブラリを導入しなくても、素のJavaScriptでAjaxのような非同期処理のリクエストの実装がシンプルに行えるようになったということですかね。
外部ライブラリを使うにしろ、使わないにしろ、ドキュメントが整備してくれていれば、利用する側としては文句は無いのだけど、まぁ、その期待は悉く裏切られるのだけどね...
だから、stackoverflowとかの記事に頼らざるを得ないわけなんだけど、
⇧ stackoverflowで提案されているソースコードに脆弱性が混入しているケースもあると。
⇧ このあたりで、解消してくれるんかね?
毎度モヤモヤ感が半端ない...
今回はこのへんで。