検索
ホームページウェブフロントエンドjsチュートリアルJavaScript が Web ブラウザを破壊している

99% JavaScript フリーの Web: それは可能ですか?

JavaScript は予測不能で、古く、時々吐き気を催します。もう使いたくないです。さて、この行は注意を引くのに最適ですが、同時に、開発者、特にフロントエンド開発者は JavaScript なしでは生きていけないため、これは誤りです。
この探索は、JavaScript を回避する方法を見つけることです。私が「JavaScript を避ける」と言っているのは、JavaScript にトランスパイルされるものを使用することを提案しているわけではありません。私が実際に言いたいのは、アプリケーション コードの最終出力には最小限の JavaScript が必要なだけであるということです。

YT でこれを視聴

JavaScript の過剰使用: なぜ問題になるのか

今日の開発者は、フロントエンド フレームワークから API インタラクションに至るまで、あらゆる面で JavaScript に大きく依存しています。しかし、本当にそこまで依存する必要があるのでしょうか?何が起こっているかは次のとおりです: 開発者は、よりシンプルで効率的な代替手段が利用できる場合、JavaScript を使用するようプレッシャーを感じることがよくあります。

ReactVueAngularSvelte などの人気のあるフレームワークを例に挙げます。これらは、動的で応答性の高い Web サイトを作成する場合には最適ですが、単純なアプリケーションには過剰になる可能性があります。これらは不必要な複雑さをもたらし、最終的には学習曲線が長くなり、メンテナンスが頭痛の種になります。

では、JavaScript には何が問題なのでしょうか?

広範囲に使用すると、次のような重大な問題点がいくつか発生します。

  1. 読み込み時間の遅延 – 大きな JavaScript バンドルにより、ページのパフォーマンスが低下します。ライブラリを追加するたびにプロジェクトの重量が増加し、ロード時間が遅くなります。
  2. クライアント側レンダリングの問題 – 多くのフレームワークはクライアント レンダリングに不必要に依存しているため、遅延やパフォーマンスの低下が発生する可能性があります。たとえば、React アプリは仮想 DOM を使用して Web ページ全体を再レンダリングするため、Web ページがインタラクティブになるまでの時間が長くなります。
  3. 重い依存関係 – 追加するライブラリが増えるほど、互換性、バージョン更新、依存関係の競合に関する問題が発生します。
  4. 隠れたメンテナンスコスト – 継続的なアップデートや、パッケージへの過度の依存による破壊的変更の可能性を維持することは、時間とリソースの面で多大なコストがかかります。

JIT コンパイラ: ああ、ボーイ!

JavaScript がパフォーマンスの向上を図る重要な領域の 1 つは、JIT (Just-In-Time) コンパイル です。 Chrome の V8 エンジンなどの最新のブラウザは、実行時に JavaScript をマシンコードにコンパイルします。

Javascript is Killing Web Browsers

目標は、JavaScript をできるだけ高速にすることです。

ただし、この最適化にはコストがかかります。 JIT コンパイラーは JavaScript コードの動作を変更することがあり、Web アプリを脆弱にする可能性のあるバグや予期せぬ問題を引き起こすことがよくあります。簡単に言えば、JIT コンパイラーの最適化は賭けになる可能性があります。

JIT コンパイラの一般的なバグ

ここでは、より悪名高いバグをいくつか紹介します:

  • コンパイルミス: コード セクションの最適化を誤ると、JIT コンパイラーは誤った出力を生成する可能性があります。
  • 境界チェックの排除: 最適化を試みる際、JIT コンパイラーは配列境界などの必要なチェックをスキップし、クラッシュの危険を招く可能性があります。
  • 冗長性の排除: JIT コンパイラーが、繰り返されるコードが冗長であると判断すると、重要なセクションが削除され、予期しない動作が発生する可能性があります。

これらのコンパイラの問題は、予期しない問題を回避するために JavaScript を広範にテストすることの重要性を強調しています。しかし、より重要なのは、新しい問題が発生するリスクを下げるために、可能な限り JavaScript を減らす必要がある理由を示していることです。

クライアント側での JavaScript の代替手段

幸いなことに、JavaScript ループに陥る必要はありません。機能を維持しながら JavaScript を削減するための代替手段がいくつか登場しています。最もエキサイティングなオプションの 2 つは、HTMXWebAssembly です。

HTMX: ステロイド上のハイパーメディア

HTMLX を使用すると、開発者は最小限の JavaScript で動的でインタラクティブな Web アプリケーションを構築できます。すべてのインタラクションで JavaScript に依存するのではなく、HTMX はサーバーから実際の HTML を送信するため、React のような JavaScript フレームワークを使用して UI 全体を再レンダリングする必要性が減ります。

これを想像してみてください。フロントエンドで処理するために JSON 応答を送り返す代わりに、HTMX を使用すると、バックエンドから HTML を直接送信できるため、クライアント側のチャーンが軽減されます。 HTMX は、従来の HTML アンカーとフォームを利用して、JavaScript を使用せずにサーバーを直接呼び出します。

Warum HTMX rockt:

  • Minimale Lernkurve – Fügen Sie Ihrem HTML ein paar Attribute hinzu, und schon kann es losgehen.
  • Funktioniert mit HTML – Vermeiden Sie die Manipulation des DOM mit übermäßigem JavaScript.
  • Anmutiger Fallback – Selbst wenn jemand JavaScript in seinem Browser deaktiviert, funktioniert Ihre HTMX-basierte App weiterhin, wenn auch ohne den ganzen Schnickschnack.

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.

WebAssembly: Ein Leistungskraftwerk

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.

Die wichtigsten Vorteile von WebAssembly:

  • Hohe Leistung: Optimiert für CPU-lastige Aufgaben, mit denen JavaScript zu kämpfen hat.
  • Läuft direkt im Browser: Wie JavaScript profitiert es von der Browserunterstützung, erfordert jedoch keine JavaScript-Parsing-/Rendering-Ineffizienz.
  • Portabel: Derselbe Code kann mit hervorragender Effizienz kompiliert und in allen Browsern ausgeführt werden.

Für jede Site, die viel Rechenaufwand bewältigen muss, WebAssembly kann die Dinge beschleunigen und die Ladezeiten verkürzen.

Serverseitig: Zeit, JavaScript aufzugeben?

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:

1. Gehen (Golang)

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.

2. Django (Python)

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.

3. PHP (Laravel)

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.

4. Ruby on Rails

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 versteckten Kosten von JavaScript-Frameworks

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 でネイティブに処理し、バックエンド ロジックを GoPython などのより安全な言語に移行することで、 Web プロジェクトを大幅に改善します。

JavaScript を完全に排除するのは誰にとっても実現不可能かもしれませんが、可能な限り JavaScript を削減することは間違いなく追求する価値があります。重要なのは、最新の代替手段を使用して、JavaScript が開発者のボトルネックにならないようにすることです。

結論

クライアントまたはサーバーで JavaScript を最小限に抑えることを目的としているかどうかに関係なく、Web アプリケーションをよりスリム、高速、より安全なものにすることができます。 HTMX と WebAssembly は、JavaScript を多用するフロントエンド開発にエキサイティングな代替手段を提供し、Go、Django、Laravel はバックエンドの実行可能なオプションです。

JavaScript は今後も残りますが、すべてをそれに依存する必要はありません。 JavaScript のフットプリントを戦略的に削減することで、パフォーマンスが向上し、シームレスに拡張できるアプリを構築できるようになります。

JavaScript を減らして Web アプリを制御する準備はできましたか?今日から実験を始めましょう!

以上がJavaScript が Web ブラウザを破壊しているの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター