0

私のアプリケーションは単一ページのアプリケーションであると想定されており、正常に動作する次のコードがあります。

home.php:

<div id="container">
</div>

アコーディオン.php:

    //Click functions: load content 
    $('#parents').click(function(){
        //Load parent in container
        $('#container').load('http://www.blabla.com/entities/parents/parents.php');
    }); 

両親.php:

<div class="entity_wrapper">
    Some divs and selectors 
</div>
<script type="text/javascript">
    $(document).ready(function(){
        //Some jQuery / javascript 
    }); 
</script>

したがって、コンテンツは正常にロードされますが、動的にロードされたスクリプトも正常に実行されます。
このシステムを繰り返し適用すると、スムーズに機能し続けます。
SPA で利用可能なフレームワーク (backbone.js など) がたくさんあることを見てきましたが、これがうまく機能するのになぜそれらが必要なのかわかりません。

backbone.js Web サイトから:

多くの JavaScript を使用する Web アプリケーションで作業する場合、最初に学ぶことの 1 つは、データを DOM に結び付けることをやめるということです。HTML UI、JavaScript ロジック、およびサーバー上のデータベース間でデータの同期を必死に維持しようとする、jQuery セレクターとコールバックの絡み合った山となる JavaScript アプリケーションを作成するのは非常に簡単です。リッチなクライアント側アプリケーションの場合、より構造化されたアプローチが役立つことがよくあります。

まあ、私は彼らが言及していることを経験しているという感覚はまったくありません.
ページごとにJavaScriptを追加することは、私にとって非常にうまく機能します。
それらは明確な範囲を持つ html コンテナーであり、javascript はその部分に関連しています。
さらに、私の場合、フロントエンドはそれほど多くのことを行うわけではありませんほとんどのロジックは、外部 PHP スクリプトへの Ajax 呼び出しに基づいて管理されています。場合によっては、一部の機能のために js をもう少し拡張することもできますが、すべてが 1 秒もかからずにスムーズに読み込まれます。

これが悪いコーディングだと思われる場合は、なぜ私がこれを行うことができないのか、さらに重要なこととして、私が適用すべき代替手段は何かを教えてください. 現時点では、うまく機能しすぎているため、このアプローチを変更する理由がわかりません。

私はこの質問に行き詰まっています。なぜなら、あまりにも簡単に真実であるとは思えないので、気分が悪いだけだからです。これほど簡単にできるのに、なぜ人は苦労するのでしょうか...

Juhanaのコメントに基づいて質問を編集しました:

自分のプロジェクトが Backbone の用途に合っているとは思えません。とにかく使うべきですか?

4

1 に答える 1

1

それはすべて、アプリのスケーラビリティ、メンテナンスの容易さ、およびパフォーマンスのレベルに依存します。あなたのコードを見ると、あなたはいくつかの古い (そして廃止予定の) jQuery 機能を使用しているため、かなり前に書かれたものであることがわかります。

シングル ページ アプリケーションは、データの読み込みだけでは終わらず、以下も含まれていることを理解しておいてください。

  • イベントバインディング
  • 動的データバインディング
  • 複数のビュー
  • 再利用可能な UI
  • 柔軟で非依存の UI コントロール
  • データの解析、表示、追跡、およびキャッシュのための JS ロジック

過去 1 年間、私は単一のフレームワークを使用しない分析プラットフォームに取り組んできましたが、偶然にもすべてを独自に実装する必要がありました (そして、非常に成功しました)。スケーラブルで、堅牢で、理解しやすく、パフォーマンスがかなり優れていますが、ほとんどのメンテナンスはさまざまなコア機能の抽象化のレベルに関するものであるため (データの取り出し、解析、それを追跡するなど)。

また、テストにも最適です。これは、システムが大きくなったときに大きな利点となります。私の意見だけでは、テストの最も重要な側面は、それが可能にする依存関係の追跡であるため、基本的に、何かに取り組むことについて心配するのをやめることができます。一見関係のないもの

クライアント側のフレームワークには特定の学習曲線があり、他のフレームワークよりも速いものもありますが、開発プロセスで常に実装しなければならないルーチンの一部が不要になるため、時間をかける価値があると思います。

于 2013-11-05T16:01:10.580 に答える