为什么我会使用scriptaculous.js的prototype.js ...主要原因是什么?

时间:2009-08-07 06:38:25

标签: javascript scriptaculous

为什么我要将prototype.js与scriptaculous.js一起使用?主要原因是什么? 我什么时候需要这两个库?什么时候不需要?

4 个答案:

答案 0 :(得分:7)

我已经使用了原型很长一段时间了,并且脚本很简单;我现在在一些项目上使用jQuery,在其他项目上使用Mootools,在其他项目上使用原型......

为什么我要使用JS Framework?
那么,有三个主要原因:

  • 他们提供了许多我不想自己重新开发的东西
  • 他们经过了充分的考验;比我自己的代码更多
  • 它们提供了一层跨浏览器兼容性(我更喜欢有一个框架来处理它,而不是自己打这场战争!)

至于你应该使用哪个JS Framework,这是另一个问题 - 这完全取决于你^^


包括prototype.js和/或scriptaculous.js:

  • prototype.js:在任何需要一些JS东西的页面上(一般大多数页面)
  • scriptaculous.js:至少在需要拖放,自动填充等功能的页面上...

与其他JS框架一样,顺便说一句......

答案 1 :(得分:6)

Scriptaculous在内部使用Prototype。如果你使用Scriptaculous,你需要Prototype。

答案 2 :(得分: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,因为它调用了原型库中可用的方法。

答案 3 :(得分:1)

Scriptaculous使用Prototype,因此如果您在网页上使用任何Scriptaculous效果,则需要包含它。

如果您看不到Scriptaculous的任何明显用途,可能您使用Prototype获得了其他javascript,它提供了一种用于编写简洁有效代码的跨平台实用程序层。检查它的一种快速方法是查找包含对$()

的调用的javascript