Prototype (фреймворк)

Prototype JavaScript Framework
Логотип программы Prototype JavaScript Framework
Тип JavaScript-библиотека
Разработчик Prototype Core Team
Написана на JavaScript
Операционная система Кроссплатформенное ПО
Последняя версия 1.7.3 (22 сентября, 2015)
Репозиторий github.com/sstephenson/p…
Лицензия MIT License
Сайт prototypejs.org

Prototype — JavaScript фреймворк, упрощающий работу с Ajax и некоторыми другими низкоуровневыми функциями. Prototype доступен в виде отдельной библиотеки, также он поставляется в составе Ruby on Rails, Tapestry, script.aculo.us и Rico.

Заявлено, что данный фреймворк совместим со следующими браузерами: Internet Explorer (Windows) 6.0+, Mozilla Firefox 1.5+, Apple Safari 2.0.4+ и Opera 9.25+, Google Chrome 1.0+. Поддержка данных браузеров подразумевает, что фреймворк совместим также с Camino, Konqueror, IceWeasel, Netscape 7+, SeaMonkey, Яндекс.Браузер и др., которые принадлежат этим же семействам.

Возможности

В Prototype присутствуют самые разные способы упрощения создания JavaScript приложений, от сокращённого вызова некоторых функций языка до сложных методов обращения к XMLHttpRequest. Ниже приведены некоторые примеры.

Функция $()

Для обращения к DOM элементу HTML страницы обычно используется функция document.getElementById:

document.getElementById("id_of_element")

Функция $() уменьшает код до:

$("id_of_element")

Но в отличие от функции DOM, функции $() можно передавать более одного аргумента и функция вернет массив (Array) объектов со всеми соответствующими элементами:

var ar = $('id_1', 'id_2', 'id_3');
for (i=0; i<ar.length; i++) {
  alert(ar[i].innerHTML);
}

Например, для указания цвета текста можно использовать следующий код:

$("id_of_element").style.color = "#ffffff";

Или, используя расширенные функции Prototype:

$("id_of_element").setStyle({color: '#ffffff'});

Код для версий ниже 1.5:

Element.setStyle("id_of_element", {color: "#ffffff"});

Функция $$()

Функция $$() будет полезна тем, кто часто разделяет CSS от контента. Она разбивает один или несколько CSS фильтров, которые поступают на вход в виде выражения подобного регулярному выражению и возвращает элементы которые соответствуют этим фильтрам. Например при выполнении данного скрипта:

var f = $$('div#block .inp');

получим массив, содержащий все элементы с классом .inp, которые находятся в контейнере div с идентификатором id="block".

Замечание: в данный момент (в версии 1.5.0) реализация функции $$() в prototype.js не очень эффективна. Если вы планируете использовать данную функцию часто в работе с объёмными и сложными HTML документами, можете рассмотреть другие реализации и просто заменить саму функцию.

Функция $F()

Похожая на $(), функция $F() возвращает значение определённого элемента HTML формы. Для текстового поля функция будет возвращать данные, содержащиеся в элементе. Для элемента 'select' функция возвратит выбранное в текущий момент значение.

$F("id_of_input_element")

Замечание: знак доллара $ — нормальный разрешённый символ для идентификаторов JavaScript; он был специально добавлен в язык одновременно с поддержкой регулярных выражений для возможности использования Perl-совместимых метасимволов, таких как $` и $'.

Функция $A()

Функция $A() преобразует один аргумент, который она получает, в объект Array. Эта функция, в сочетании с расширениями для класса Array, облегчает конвертирование или копирование любых перечислимых списков в объект Array. Один из вариантов использования заключается в том, чтобы преобразовать DOM NodeLists в регулярные массивы, которые могут быть более эффективно использованы.

Функция $H()

Функция $H() преобразовывает объекты в перечислимые хеш-объекты, которые похожи на ассоциативный массив.

//Допустим имеем объект:
var hash = {method: post, type: 2, flag: t};
//При использовании функции:
var h = $H(hash);
//Получим:
alert(h.toQueryString());
//method=post&type=2&flag=t

Объект Ajax

Объект Ajax предоставляет простые методы инициализации и работы с функцией XMLHttpRequest, без необходимости подстраивать код под нужный браузер. Существует два способа вызова объекта: Ajax.Request возвращает XML вывод AJAX-запроса, в то время как Ajax.Updater помещает ответ сервера в выбранную ветвь DOM.

Ajax.Request в примере ниже находит значения двух полей ввода, запрашивает страницу с сервера, используя значения в виде POST-запроса, а после завершения выполняет пользовательскую функцию showResponse():

 
var val1 = escape($F("name_of_id_1"));
var val2 = escape($F("name_of_id_2"));
var url = "http://yourserver/path/server_script";
var pars = {value1: val1, value2: val2};

var myAjax = new Ajax.Request(
  url,
  {
    method: "post",
    parameters: pars,
    onComplete: showResponse
   });

Класс Element

Методы класса предназначены для работы с элементами HTML. Для создания HTML элемента используется конструктор класса

new Element(tagName[,{attributes}])

В конструктор передаётся HTML-тег в строковом виде и, если необходимо, атрибуты тега.

Пример создания нового элемента:

// Создаём элемент <div> в памяти и указываем атрибуты id, class.
var newElement = new Element('div',{id: 'childDiv', class: 'divStyle'});
// Включаем созданный элемент в DOM браузера, а именно в существующий <div>,
// с помощью метода Element.insert
Element.insert($('parrentDiv'),newElement);

Объектно-ориентированное программирование

Prototype также добавляет поддержку более традиционного объектно-ориентированного программирования.

Для создания нового класса используется метод Class.create(). Классу присваивается прототип prototype, который выступает в качестве основы для каждого экземпляра класса. Старые классы могут быть расширены новыми с помощью Object.extend.

// создания нового класса в стиле prototype 1.6
var FirstClass = Class.create({
  // Инициализация конструктора
  initialize: function () {
      this.data = "Hello World";
  }
});

// создания нового класса в стиле prototype 1.5
var DataWriter = Class.create();
DataWriter.prototype = {
   printData: function () {
      document.write(this.data);
   }
};

Object.extend(DataWriter, FirstClass);

См. также

Ссылки

Read other articles:

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: List of wars involving the Ottoman Empire – news · newspapers · books · scholar · JSTOR (May 2012) (Learn how and when to remove this template message) This list is incomplete; you can help by adding missing items. (August 2008) Part of a series on the Military...

 

  لمعانٍ أخرى، طالع الموردة (توضيح). الموردة   الإحداثيات 15°39′00″N 32°29′00″E / 15.65°N 32.4833°E / 15.65; 32.4833  تقسيم إداري  البلد السودان  التقسيم الأعلى أم درمان  تعديل مصدري - تعديل   حي الموردة حي من أحياء السودان التاريخية العريقة، يقع بولاية الخرطوم ف

 

Luc Van Acker Información personalNacimiento 6 de octubre de 1961 en Tienen, BélgicaTienen (Bélgica) Nacionalidad BelgaInformación profesionalOcupación Productor discográfico, guitarrista y cantante Géneros Rock industrial, new waveInstrumentos Voz, guitarraDiscográfica Wax Trax! Records Artistas relacionados Revolting Cocks, Primitive RaceSitio web www.lucvanacker.com [editar datos en Wikidata] Luc van Acker (6 de octubre de 1961) es un músico belga. Empezó a escribir y g...

Ця стаття не містить посилань на джерела. Ви можете допомогти поліпшити цю статтю, додавши посилання на надійні (авторитетні) джерела. Матеріал без джерел може бути піддано сумніву та вилучено. (травень 2023) ОМА Студійний альбомВиконавець Ірина БіликДата випуску 2000Жанр п

 

У Вікіпедії є статті про інших людей із прізвищем Ситін. Сергій Ситін Сергій Ситін Особисті дані Повне ім'я Сергій Валерійович Ситін Народження 19 липня 1982(1982-07-19) (41 рік)   Авдіївка[1], УРСР, СРСР Зріст 174 см[2] Вага 77 кг[3] Громадянство  Україна→ Росія Пози

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2023) سامانثا أريفالو (بالإسبانية: Samantha Arévalo)‏[1]  معلومات شخصية اسم الولادة (بالإسبانية: Samantha Michelle Arévalo Salinas)‏[1]  الاسم الكامل Samantha Michelle Arévalo Salinas الميل

Ізмаїльська область Буджак Мапа Ізмаїльської області Мапа Ізмаїльської області Адм. центр Аккерман, Ізмаїл Найбільше місто Ізмаїл Країна  СРСР, ( УРСР) Регіон Бессарабія Межує з: Одеська область, Молдавська РСР, Румунія Населення  - повне 493,8 тис. чол. (1954) Площа  -...

 

Guy Joseph François Thimoléon d'Auberjon de MurinaisFonctionDéputé aux États généraux de 178928 novembre 1789 - 30 septembre 1791BiographieNaissance 8 novembre 1759Saint-MarcellinDécès 28 février 1831 (à 71 ans)MurinaisNationalité françaiseActivité Homme politiqueParentèle Antoine Victor Augustin d'Auberjon de Murinais (oncle)Louis Catherine de Loras (beau-père)modifier - modifier le code - modifier Wikidata Guy-Joseph-François-Thimoléon d'Auberjon, chevalier ...

 

Throughout its 98-year history,[1] a large number of Soccer Players from the Universitario de Deportes have worn the first team jersey and many of them have represented Peru on their national soccer team.[2] Teodoro Fernández is the maximum idol of the institution,[3][4] as well as its historical scorer with 156 goals.[5] He is considered one of the best soccer players in the history of Peru.[6][7][8][9] When Teodoro Fer...

هدى حسين هدى حسين، 2014 معلومات شخصية اسم الولادة هدى حسين علي الراضي الميلاد 20 أغسطس 1965 (العمر 58 سنة)الكويت الجنسية  العراق أسماء أخرى ملكة مسرح الطفل[1]ملكة الشاشة الخليجية[2] الحياة العملية المدرسة الأم الجامعة العربية المفتوحة المهنة التمثيل سنوات النشاط 1972 - حت...

 

Higher education institution in Chiba Prefecture, Japan CKU redirects here. For other uses, see CKU (disambiguation). Chiba Keizai University千葉経済大学 Chiba Keizai DaigakuTypePrivateEstablished1968LocationInage-ku, Chiba, Chiba, JapanWebsitewww.cku.ac.jp Chiba Keizai University (千葉経済大学, Chiba Keizai Daigaku, Chiba Economics University) is a private university in Inage-ku, Chiba, Japan. This university is established by Chiba Keizai Academy(hereinafter, this is called 'CKA...

 

Italian writer (1925–1992) Antonio AmurriBorn(1925-06-28)28 June 1925Ancona, ItalyDied18 December 1992(1992-12-18) (aged 67)Rome, ItalyOccupation(s)Author, writer, lyricistChildren2, including Franco AmurriRelativesEva Amurri (granddaughter)Antonio Amurri (28 June 1925 – 18 December 1992) was an Italian author, radio and television writer and lyricist. Born in Ancona, Amurri was author of some of the most popular RAI variety shows, such as Canzonissima, Gran Varietà, Fantastico and ...

1948 film by William Beaudine Jinx MoneyDirected byWilliam BeaudineWritten byEdmond SewardTim RyanGerald SchnitzerProduced byJan GrippoStarringLeo GorceyHuntz HallWilliam BenedictGabriel DellBennie BartlettSheldon LeonardCinematographyMarcel Le PicardEdited byWilliam AustinMusic byEdward J. KayDistributed byMonogram PicturesRelease date June 27, 1948 (1948-06-27) Running time68 minutesLanguageEnglish Jinx Money is a 1948 American comedy film directed by William Beaudine and sta...

 

2014 Indian filmActuallyFilm posterDirected byShine KurianWritten byShine KurianStarringHemanth MenonAju VargheseSreenivasanSneha UnnikrishnanAnjali AneeshBhagath ManuelChembil AshokanCinematographyJames ChrisEdited byMendoz AntonyMusic byKilimanoor RamavarmaGopu Krishna P.SProductioncompanyRight Turn FilmsDistributed byRight Turn ReleaseRelease date 5 December 2014 (2014-12-05) CountryIndiaLanguageMalayalam Actually is a 2014 Malayalam-language Indian feature film written and ...

 

1937 film by James Whale The Road BackTheatrical release posterDirected byJames WhaleScreenplay byCharles KenyonR. C. SherriffBased onThe Road Backby Erich Maria RemarqueProduced byEdmund GraingerCharles R. RogersStarringJohn KingRichard CromwellSlim SummervilleAndy DevineNoah Beery Jr.CinematographyJohn J. MescallGeorge RobinsonEdited byTed J. KentCharles MaynardMusic byDimitri TiomkinProductioncompanyUniversal PicturesDistributed byUniversal PicturesRelease date June 1, 1937 ...

Glasgow and Aberdeen UniversitiesFormer University constituencyfor the House of Commons1868–1918Seats1Replaced byCombined Scottish Universities Glasgow and Aberdeen Universities, in Scotland, was a university constituency represented in the House of Commons of the Parliament of the United Kingdom from 1868 until 1918. It was merged with the Edinburgh and St Andrews Universities constituency to form the Combined Scottish Universities constituency. Members of Parliament Election Member[1&...

 

Questa voce sull'argomento cestisti statunitensi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Kyle Fogg Kyle Fogg al tiro con la maglia di Arizona Nazionalità  Stati Uniti Altezza 191 cm Peso 85 kg Pallacanestro Ruolo Playmaker Squadra  Liaoning F. Leopards Carriera Giovanili 2004-2008Brea Olinda High School2008-2012 Arizona Wildcats Squadre di club 2012-2013 R.G.V. Vipers37 (238...

 

Historic house in Michigan, United States United States historic placeDr. Samuel Catlin HouseU.S. National Register of Historic PlacesMichigan State Historic Site Show map of MichiganShow map of the United StatesLocation213 East Chicago Blvd.Tecumseh, MichiganCoordinates42°00′16″N 83°56′32″W / 42.00444°N 83.94222°W / 42.00444; -83.94222Built1866–1867ArchitectSalmon CraneArchitectural styleItalianateMPSTecumseh MRANRHP reference No.86001563&...

2014 Japanese animated film directed by Hiromasa Yonebayashi When Marnie Was ThereTheatrical release posterJapanese nameKanji思い出のマーニーLiteral meaningMarnie of [my] MemoriesTranscriptionsRevised HepburnOmoide no Mānī Directed byHiromasa YonebayashiScreenplay by Masashi Andō Keiko Niwa Hiromasa Yonebayashi Based onWhen Marnie Was Thereby Joan G. RobinsonProduced byYoshiaki NishimuraStarring Sara Takatsuki Kasumi Arimura Hana Sugisaki Hitomi Kuroki Ryoko Moriyama Cinematography...

 

Federico FelliniNama dalam bahasa asli(it) Federico Fellini BiografiKelahiran20 Januari 1920 Rimini Kematian31 Oktober 1993 (73 tahun)Roma Penyebab kematianSerangan jantung Tempat pemakamanFellini tomb (en) Data pribadiPendidikanUniversitas Roma La Sapienza KegiatanPekerjaanSutradara film, penulis skenario, satirist (en), pembuat komik, penulis dan sutradara Periode aktif1945  –  1992 Dipengaruhi olehCharlie Chaplin dan Pablo Picasso Karya kreatifKarya terkenal(1953) I Vitelloni (...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!