1

scriptaculous.jsでprototype.jsを使用したいのはなぜですか?主な理由は何ですか?いつ両方のライブラリが必要になり、いつ必要になりませんか?

4

4 に答える 4

7

私はかなり長い間プロトタイプを使用してきましたが、それを使ってスクリプトを作成しました。私は現在、いくつかのプロジェクトでjQueryを使用し、他のプロジェクトでMootoolsを使用し、他のプロジェクトでプロトタイプを使用しています...

なぜJSフレームワークを使用するのですか?
さて、3つの主な理由:

  • 彼らは私が自分で再開発したくないものをたくさん提供します
  • それらは十分にテストされています; 私自身のコードよりも
  • それらは、ブラウザー間の互換性のレイヤーを提供します(そして、私は、この戦争を自分で戦わなければならないのではなく、それを処理するフレームワークを持つことを好みます!)

どのJSフレームワークを使用すべきかについては、それは別の質問です-それは完全にあなた次第です^^


protocol.jsおよび/またはscriptaculous.jsを含める場合:

  • protocol.js:JSのものを必要とするすべてのページ(一般的にほとんどのページ)
  • scriptaculous.js:少なくともドラッグアンドドロップ、オートコンプリートなどの効果を必要とするページでは...

他のJSフレームワークでも同じです、ところで...

于 2009-08-07T06:47:10.467 に答える
6

ScriptaculousはPrototypeを内部で使用します。Scriptaculousを使用する場合は、Prototypeが必要です。

于 2009-08-07T06:45:30.143 に答える
1

scriptaculous.jsファイルは、document.write呼び出しを使用する残りのスクリプトを含むヘルパーファイルです。

scriptaculous.jsファイルに記述されたコードからわかるように、require関数を呼び出すことにより、ビルダー、エフェクトなどのライブラリが含まれます。

var Scriptaculous = {
  Version: '1.8.2',
  require: function(libraryName) {
    // inserting via DOM fails in Safari 2.0, so brute force approach
    document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
  },
  REQUIRED_PROTOTYPE: '1.6.0.3',
  load: function() {
    function convertVersionString(versionString) {
      var v = versionString.replace(/_.*|\./g, '');
      v = parseInt(v + '0'.times(4-v.length));
      return versionString.indexOf('_') > -1 ? v-1 : v;
    }

    if((typeof Prototype=='undefined') ||
       (typeof Element == 'undefined') ||
       (typeof Element.Methods=='undefined') ||
       (convertVersionString(Prototype.Version) <
        convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
       throw("script.aculo.us requires the Prototype JavaScript framework >= " +
        Scriptaculous.REQUIRED_PROTOTYPE);

    var js = /scriptaculous\.js(\?.*)?$/ig;
    $$('head script[src]').findAll(function(s) {
      return s.src.match(js);
    }).each(function(s) {
      var path = s.src.replace(js, ''),
      includes = s.src.match(/\?.*load=([a-z,]*)/);
      (includes ? includes[1] : 'builder,effects,drag-drop,controls,slider,sound').split(',').each(
       function(include) { Scriptaculous.require(path+include+'.js') });
    });
  }
};

Scriptaculous.load();

また、scriptaculousはプロトタイプライブラリに基づく一種のアドオンであるため、プロトタイプライブラリを含めます。プロトタイプライブラリで利用可能なメソッドを呼び出すため、プロトタイプなしでscriptaculousを使用することはできません。

于 2009-08-07T06:43:40.927 に答える
1

ScriptaculousPrototypeを使用するため、ページでScriptaculousの効果を使用している場合は、それを含める必要があります。

Scriptaculousの明らかな使用法が見当たらない場合は、Prototypeを使用した他のJavaScriptを使用している可能性があります。これは、簡潔で効果的なコードを作成するための一種のクロスプラットフォームユーティリティレイヤーを提供します。それを確認する簡単な方法は、$()の呼び出しを含むJavaScriptを探すことです。

于 2009-08-07T06:44:14.170 に答える