1

Prototype と Scriptaculous で動作する JavaScript アプリケーションを作成しました。オープン ソース製品として展開することを考えており、jQuery でも実行できるようにしたいと考えています。通常、このアプリが最初に作成されたサイトを除いて、他のほとんどのアプリで jQuery を使用しています。

当初は 2 つの別々のアプリケーションを構築することを考えていましたが、それらを維持するには時間がかかります。代わりに、ページが jQuery または Prototype を実行しているかどうかを検出し、適切なメソッドを呼び出すライブラリ抽象化レイヤーを構築することを検討しています。ライブラリ全体を抽象化するつもりはありません。アプリケーションに適用可能な機能、つまりセレクター、イベント、効果だけを抽象化するつもりはありません。私のアプリのコアは 500 行未満のコードなので、あまり心配する必要はありません。

したがって、呼び出す代わりに、(ライブラリ抽象化の LA) を呼び出します$('id')。これは、プロトタイプやクエリなどで呼び出します…LA.$('id')$('id')$('#id')

これは正気ですか?技術的なハードルは思い浮かびませんが、誰かが以前にこれを試みたことがあると思いました。私の検索では、同じようなものは見つかりませんでした。

4

3 に答える 3

3

ライブラリを部分的にしかサポートしていない場合、サポートを終了する必要があるため、誰もそれを使用することを選択しないと思います。さらに機能を追加する要求があるため、ライブラリを維持することが頭痛の種になる可能性があります。

アプリケーションが非常に小さい場合は、MS が行ったように、jQuery に切り替えて標準化しないでください。

誰かがそれを使用していて、ライブラリの古いバージョンを使用していて、API の変更があった場合、そのライブラリのサポートを追加するように求められるため、バージョンに関する問題が発生する可能性があります。

于 2009-10-14T01:34:37.373 に答える
0

Ext.Js も同様のことをしていると思います。それらには「アダプター」の概念があり、Ext.JS を基礎となるライブラリーの上に置くことができ、それはそのまま機能します。主な違いは、使用したいライブラリを指定してドットを結合する 1 対 1 のモデルを使用していることです。しかし、あなたが見つけたものが何であれ、それを使ってください.

私はそれが非常識だとは思いませんが、特に両方が利用可能な場合は、どちらのライブラリを使用するかを考えてみるのが楽しいかもしれません.

于 2009-10-14T01:26:39.243 に答える
0

Web 開発フレームワーク (Prototype、jQuery など) 自体は、存在するさまざまなブラウザーを抽象化するように設計されています。フレームワークに 1 つのことを要求すると、ブラウザーに関係なく (理想的には) 同じ結果が得られます。したがって、ここでは、抽象化の上に抽象化を提案しています。おそらく、サイトにどのフレームワークを選択したかに関係なく、人々がツールを使用できるようにしたいためです。興味深いアイデアのように聞こえますが、個人的には、長期的にはうまくいかないと推測する必要があります. それは主に、将来がどうなるかわからないからです。Prototype は以前は最も使用されていたフレームワークでしたが、現在は jQuery がそれを上回っています。おそらく、1 年以内に別のフレームワークが非常に人気になるでしょう。そのフレームワークをサポートしたい場合はどうすればよいでしょうか? これは、追加しなければならない多くの条件付きコードになる可能性があります。

サポートする単一のフレームワークを選択してそれに固執するか、別のライブラリを維持するかのどちらかです。理想的には、なんらかのビルダー スクリプトを記述できれば、非常にクールです。これにより、いくつかのリストでフレームワーク ルールを設定できるようになり、スクリプトはいくつかのコア スクリプトとルール リストに基づいてフレームワークごとに個別のスクリプトを作成します。正直なところ、このようなことをどのように達成するのが最善かはわかりませんが、エンドユーザーに見えなくても、探している抽象化能力の抽象化を効果的に提供できます。

于 2009-10-14T01:38:14.417 に答える