ホームページ > 記事 > ウェブフロントエンド > JavaScript が Web ブラウザを破壊している
JavaScript は予測不能で、古く、時々吐き気を催します。もう使いたくないです。さて、この行は注意を引くのに最適ですが、同時に、開発者、特にフロントエンド開発者は JavaScript なしでは生きていけないため、これは誤りです。
この探索は、JavaScript を回避する方法を見つけることです。私が「JavaScript を避ける」と言っているのは、JavaScript にトランスパイルされるものを使用することを提案しているわけではありません。私が実際に言いたいのは、アプリケーション コードの最終出力には最小限の JavaScript が必要なだけであるということです。
YT でこれを視聴
今日の開発者は、フロントエンド フレームワークから API インタラクションに至るまで、あらゆる面で JavaScript に大きく依存しています。しかし、本当にそこまで依存する必要があるのでしょうか?何が起こっているかは次のとおりです: 開発者は、よりシンプルで効率的な代替手段が利用できる場合、JavaScript を使用するようプレッシャーを感じることがよくあります。
React、Vue、Angular、Svelte などの人気のあるフレームワークを例に挙げます。これらは、動的で応答性の高い Web サイトを作成する場合には最適ですが、単純なアプリケーションには過剰になる可能性があります。これらは不必要な複雑さをもたらし、最終的には学習曲線が長くなり、メンテナンスが頭痛の種になります。
広範囲に使用すると、次のような重大な問題点がいくつか発生します。
JavaScript がパフォーマンスの向上を図る重要な領域の 1 つは、JIT (Just-In-Time) コンパイル です。 Chrome の V8 エンジンなどの最新のブラウザは、実行時に JavaScript をマシンコードにコンパイルします。
目標は、JavaScript をできるだけ高速にすることです。
ただし、この最適化にはコストがかかります。 JIT コンパイラーは JavaScript コードの動作を変更することがあり、Web アプリを脆弱にする可能性のあるバグや予期せぬ問題を引き起こすことがよくあります。簡単に言えば、JIT コンパイラーの最適化は賭けになる可能性があります。
ここでは、より悪名高いバグをいくつか紹介します:
これらのコンパイラの問題は、予期しない問題を回避するために JavaScript を広範にテストすることの重要性を強調しています。しかし、より重要なのは、新しい問題が発生するリスクを下げるために、可能な限り JavaScript を減らす必要がある理由を示していることです。
幸いなことに、JavaScript ループに陥る必要はありません。機能を維持しながら JavaScript を削減するための代替手段がいくつか登場しています。最もエキサイティングなオプションの 2 つは、HTMX と WebAssembly です。
HTMLX を使用すると、開発者は最小限の JavaScript で動的でインタラクティブな Web アプリケーションを構築できます。すべてのインタラクションで JavaScript に依存するのではなく、HTMX はサーバーから実際の HTML を送信するため、React のような JavaScript フレームワークを使用して UI 全体を再レンダリングする必要性が減ります。
これを想像してみてください。フロントエンドで処理するために JSON 応答を送り返す代わりに、HTMX を使用すると、バックエンドから HTML を直接送信できるため、クライアント側のチャーンが軽減されます。 HTMX は、従来の HTML アンカーとフォームを利用して、JavaScript を使用せずにサーバーを直接呼び出します。
In einer Welt, in der viele Apps ohne JavaScript kaputt gehen, HTMX sorgt für größere Kompatibilität und bessere Leistung. Es geht zurück auf das Wesentliche, Anfragen direkt aus HTML-Elementen zu stellen und interaktive Komponenten wie Formulare oder anklickbare Elemente in Angriff zu nehmen, ohne Ihre App mit Skripten aufzublähen.
Wenn es um WebAssembly (Wasm) geht, besteht die Absicht nicht darin, JavaScript vollständig zu ersetzen, sondern rechenintensive Aufgaben zu bewältigen. Dies kann die Leistung von Spielen, datenwissenschaftliche Berechnungen oder die Bildverarbeitung sein, bei denen JavaScript vom Standpunkt der Leistung einfach nicht ausreicht.
Mit WebAssembly können Sie Sprachen wie C, C und Rust kompilieren, um spezifische, rechenintensive Aufgaben auf der Clientseite auszuführen, ohne JavaScript zu verwenden. Dies macht WebAssembly ideal für Aufgaben wie Videobearbeitung, Spiele oder Datenverarbeitung, alles innerhalb eines Webbrowsers.
Für jede Site, die viel Rechenaufwand bewältigen muss, WebAssembly kann die Dinge beschleunigen und die Ladezeiten verkürzen.
Während JavaScript einst auf die Clientseite beschränkt war, ist es durch die Einführung von Node.js auch auf Servern äußerst beliebt geworden. Node hat einiges zu bieten: Asynchrone Ereignisbehandlung, nicht blockierende E/A und natürlich die Verwendung einer Sprache im gesamten Stapel. Aber die Fallstricke von JavaScript (dynamische Typisierung, Sicherheitsrisiken wie Prototypverschmutzung und erhöhte Komplexität) bestehen immer noch.
Glücklicherweise haben wir 100 % Alternativen zu JavaScript auf der Serverseite. Hier sind einige:
Gos leichtgewichtige Goroutinen ermöglichen hochgradig gleichzeitige, skalierbare Systeme ohne den Speicheraufwand von Threads. Diese Sprache eignet sich besonders für Anwendungen, die eine blitzschnelle Leistung bei großem Datenverkehr benötigen.
Django ist ein Favorit, wenn es um Sicherheit geht. Es reduziert Schwachstellen wie Prototypenverschmutzung und Redos-Angriffe (für die JavaScript anfällig ist). Obwohl es möglicherweise nicht wie Go skaliert, Django ist perfekt für kleinere oder sicherheitsbewusste Anwendungen.
PHP war schon immer eine zuverlässige Backend-Sprache und sein modernes Framework, Laravel, macht kleine bis mittlere Projekte einfach zu verwalten. Mit automatischem Routing und einem großartigen Plugin-Ökosystem hat PHP trotz des Aufstiegs von JavaScript immer noch seinen Platz in der Entwicklungswelt.
Für schnelle Entwicklung bietet Ruby on Rails eine elegante, entwicklerfreundliche Umgebung. Auch wenn es für die Bewältigung großer Anwendungen vielleicht nicht die beste Lösung ist, eignet es sich perfekt für kleine Teams, die schnelle, skalierbare Lösungen anstreben.
Die Verwendung von mehr JavaScript, insbesondere für alles auf der Client- und Serverseite, verursacht eine Reihe versteckter Kosten. Je größer Ihr JavaScript-Paket ist, desto mehr Probleme treten auf. Hier ist, womit Sie es zu tun haben:
結局のところ、JavaScript を減らすことは、バグや読み込み時間の遅さを回避することだけではなく、より速く、よりシンプルで、より安全な Web アプリケーションを構築することです。負荷の高い計算を WebAssembly にオフロードし、UI 更新を HTMX でネイティブに処理し、バックエンド ロジックを Go や Python などのより安全な言語に移行することで、 Web プロジェクトを大幅に改善します。
JavaScript を完全に排除するのは誰にとっても実現不可能かもしれませんが、可能な限り JavaScript を削減することは間違いなく追求する価値があります。重要なのは、最新の代替手段を使用して、JavaScript が開発者のボトルネックにならないようにすることです。
クライアントまたはサーバーで JavaScript を最小限に抑えることを目的としているかどうかに関係なく、Web アプリケーションをよりスリム、高速、より安全なものにすることができます。 HTMX と WebAssembly は、JavaScript を多用するフロントエンド開発にエキサイティングな代替手段を提供し、Go、Django、Laravel はバックエンドの実行可能なオプションです。
JavaScript は今後も残りますが、すべてをそれに依存する必要はありません。 JavaScript のフットプリントを戦略的に削減することで、パフォーマンスが向上し、シームレスに拡張できるアプリを構築できるようになります。
JavaScript を減らして Web アプリを制御する準備はできましたか?今日から実験を始めましょう!
以上がJavaScript が Web ブラウザを破壊しているの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。