Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«HTML 5, CSS 3 ΠΈ Web 2.0. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° соврСмСнных Web-сайтов». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 64

Автор Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”Ρ€ΠΎΠ½ΠΎΠ²

</UL>

</LI>

<LI><A HREF="chapters/about.htm">О Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ…</A></LI>

</UL>

ПослС этого ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» Web-сцСнария main.js ΠΈ помСстим ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° onReady ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ext ΠΊΠΎΠ΄ ΠΈΠ· листинга 18.3.

Листинг 18.3

function generateInnerList(aDataBase, elInnerList) {

for (var i = 0; i < aDataBase.length; i++) {

var s = "<LI><CODE><A HREF=\"" + aDataBase[i].url + "\">" + aDataBase[i].name + "</A></CODE></LI>"; elInnerList.insertHtml("beforeEnd", s);

}

}

Он ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ generateInnerList, которая Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка. Π­Ρ‚Π° функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π½Π°ΡˆΡƒ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… массивов; Π½Π° основС этого массива Π±ΡƒΠ΄ΡƒΡ‚ созданы ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ списка;

β€” Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ список, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ эти ΠΏΡƒΠ½ΠΊΡ‚Ρ‹, Π² Π²ΠΈΠ΄Π΅ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Element.

Π•Π΅ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ прост. Рассмотрим Π΅Π³ΠΎ построчно.

ЗапускаСм Ρ†ΠΈΠΊΠ» со счСтчиком, Π² Ρ‚Π΅Π»Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ списка:

for (var i = 0; i < aDataBase.length; i++) {

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Ρ†ΠΈΠΊΠ»Π° β€” пСрСмСнная i, Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика β€” 0, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ (ΠΎΠ½ бСрСтся ΠΈΠ· свойства length ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Array; ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ β€” Π² Π³Π»Π°Π²Π΅ 14), ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ β€” ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ счСтчика. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ†ΠΈΠΊΠ» выполнится ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько элСмСнтов содСрТит массив, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ.

Π€ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ строку с HTML-ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΌ ΠΏΡƒΠ½ΠΊΡ‚ списка:

var s = "<LI><CODE><A HREF=\"" + aDataBase[i].url + "\">" + aDataBase[i].name + "</A></CODE></LI>";

НазваниС ΠΏΡƒΠ½ΠΊΡ‚Π° ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСс Ρ„Π°ΠΉΠ»Π° с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ содСрТимого Π±Π΅Ρ€Π΅ΠΌ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… свойств ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ элСмСнтом ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ массива.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ списка Π½Π° основС строки, сформированной Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ:

elInnerList.insertHtml("beforeEnd", s);

}

Π’ качСствС мСста, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚, ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ "beforeEnd" β€” ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³ΠΎΠΌ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Π΅Ρ† списка.

На этом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ. А послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ†ΠΈΠΊΠ» Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ самой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ generateInnerList.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ вставим Π² самоС Π½Π°Ρ‡Π°Π»ΠΎ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ onReady ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ext, Ρ‚Ρ€ΠΈ выраТСния:

generateInnerList(aHTML, Ext.get("navbar"). child("> LI: nth(1) UL"));

generateInnerList(aCSS, Ext.get("navbar"). child("> LI: nth(2)UL"));

generateInnerList(aSamples, Ext.get("navbar"). child("> LI: nth(3) UL"));

ΠœΡ‹ Ρ‚Ρ€ΠΈΠΆΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ generateInnerList, ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ пСрСдавая Π΅ΠΉ Ρ‚Ρ€ΠΈ массива, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Ρ‚Ρ€ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списка, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ.

Π’Ρ€ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… выраТСния создадут ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ выраТСния привяТут ΠΊ Π½ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наша полоса Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ создаСтся Web-сцСнариСм, Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ формируСтся Π² HTML-ΠΊΠΎΠ΄Π΅.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Web-страницу index.htm, Π½Π°Π±Ρ€Π°Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-адрСс http://localhost Π² Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅, ΠΈ убСдимся Π² этом. Π²

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π˜Ρ‚Π°ΠΊ, Web-сцСнарий, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π‘Π°ΠΌΠΎΠ΅ врСмя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ полосу Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π΅Ρ‰Π΅ ΠΏΠ°Ρ€ΠΎΠΉ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ².

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ» Web-сцСнария data.js ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² массив aCSS Π΄Π²Π° элСмСнта:


aCSS[3] = { name: "font-family", url: "attrs/a_font-family.htm" };

aCSS[4] = { name: "font-size", url: "attrs/a_font-size.htm" };


ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Web-страницу index.htm Π² Web-ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅. И ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ спискС (ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ стиля CSS) появятся Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡƒΠ½ΠΊΡ‚Π°. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ½ΠΈ окаТутся Π² самом Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ†Π΅, Π½Π°Ρ€ΡƒΡˆΠΈΠ² принятый Π½Π°ΠΌΠΈ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ порядок.

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эти Π΄Π²Π° Π½ΠΎΠ²Ρ‹Ρ… элСмСнта ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² самый ΠΊΠΎΠ½Π΅Ρ† массива aCSS.

Ѐункция generateInnerList "ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚" ΠΏΠΎ этому массиву ΠΈ создаст Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты Π² Π½Π΅ΠΌ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚.

Но ΠΌΡ‹-Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС! Π—Π½Π°Ρ‡ΠΈΡ‚, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив aCSS.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ‚Π°ΠΊΠΈΡ… случаСв ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ JavaScript Array ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ sort. Он ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ выполняСт сортировку массива, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹Π·Π²Π°Π½:


<массив>.sort([<функция сравнСния>])


Если этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹Π·Π²Π°Π½ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠ½ отсортируСт массив ΠΏΠΎ строковому ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Π΅Π³ΠΎ элСмСнтов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт массива ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π² строку ΠΈ отсортируСт элСмСнты ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌΡƒ порядку этих строк (Π° Ссли Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‚ΠΎ ΠΏΠΎ ΠΊΠΎΠ΄Π°ΠΌ символов, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… эти строки).

Вакая сортировка ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚, Ссли элСмСнты массива хранят строки. Но Ссли Ρ‚Π°ΠΌ окаТутся числа ΠΈΠ»ΠΈ экзСмпляры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сортировки ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ совсСм Π½Π΅ Ρ‚Π΅ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ. Π’ самом Π΄Π΅Π»Π΅, ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ отсортированы Π² этом случаС экзСмпляры ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” нСпонятно.

Но ΠΌΠ΅Ρ‚ΠΎΠ΄ sort ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сравнСния, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ ΠΎΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты массива ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ.

Ѐункция сравнСния Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° β€” сравниваСмыС элСмСнты массива β€” ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ число, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· этих элСмСнтов с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния программиста "мСньшС".

β€” Π•сли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт "мСньшС" Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, функция сравнСния Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ –1).

β€” Π•сли ΠΎΠ±Π° элСмСнта "Ρ€Π°Π²Π½Ρ‹", функция сравнСния Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 0.

β€” Π•сли ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт "большС" Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, функция сравнСния Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 1).

Π”Π°Π²Π°ΠΉΡ‚Π΅ напишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (листинг 18.4), ΠΊΠΎΡ‚орая Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ элСмСнты массивов aHTML, aCSS ΠΈ aSamples ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ свойства name ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π°. Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ строки ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π½Π°ΠΊΠΎΠΌΡ‹Ρ… Π½Π°ΠΌ ΠΏΠΎ Π³Π»Π°Π²Π΅ 14 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния β€” ΠΎΠ½ΠΈ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ со строками.

Листинг 18.4

function sortArray(c1, c2) {

if (c1.name < c2.name)

return -1 else

if (c1.name > c2.name)

return 1 else

return 0;

}

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΠΌ ΠΊΠΎΠ΄ листинга 18.4 Π² самом ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° Web-сцСнария data.js, послС объявлСний всСх Ρ‚Ρ€Π΅Ρ… массивов.

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, собствСнно, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сортировку массивов. Π­Ρ‚ΠΎ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ помСстим послС объявлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния:


aHTML.sort(sortArray); aCSS.sort(sortArray); aSamples.sort(sortArray);

Π’ΠΎΡ‚ ΠΈ всС. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Web-страницу index.htm Π² дСйствии ΠΈ убСдимся, Ρ‡Ρ‚ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списках располоТСны Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС.

На этом ΠΏΠΎΠΊΠ° Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠΌ с Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ содСрТимым.

Π§Ρ‚ΠΎ дальшС?


Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Web-страницы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ особых Web-сцСнариСв. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ познакомились с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… срСдствами JavaScript ΠΈ Π΄Π°ΠΆΠ΅ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ списки Π² нашСй полосС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π½Π° основС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящСйся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ содСрТимым ΠΈ рассмотрим Π±ΠΎΠ»Π΅Π΅ слоТныС случаи. А Π΅Ρ‰Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сСмантичСская Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ рассмотрим способы ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅Π΅ всС Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ срСдствами JavaScript. JavaScript Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ³Ρ€Π°Π½Π½Ρ‹ΠΉ язык…

ГЛАВА 19. БСмантичСская Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… 

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ с Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ содСрТимым Web-страницы β€” содСрТимым, создаваСмым с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Web-сцСнариСв. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ. Π’ качСствС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΌΡ‹ создали Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… списков нашСй полосы Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΈ Web-сцСнарий, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ эти ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ Π½Π° основС хранящихся Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… свСдСний.

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ содСрТимым ΠΈ создадим Ρ€Π°Π·Π΄Π΅Π» "Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅" для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Web-страницы нашСго Web-сайта. Π’ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» ΠΌΡ‹ помСстим гипСрссылки Π½Π° Web-страницы со связанными ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ: описаниями Ρ‚Π΅Π³ΠΎΠ² HTML ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² стиля CSS, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… сходноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ использования Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° стиля. Π Π°Π·Π΄Π΅Π» "Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅" Π±ΡƒΠ΄Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.

А Π΅Ρ‰Π΅ ΠΌΡ‹ познакомимся с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ сСмантичСской Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ научимся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π΅ срСдствами JavaScript. Π‘ Π½Π΅Π΅-Ρ‚ΠΎ ΠΌΡ‹ ΠΈ Π½Π°Ρ‡Π½Π΅ΠΌ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΌΠ°Π½Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΡ‹ собираСмся ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° всСх Web-страницах Ρ€Π°Π·Π΄Π΅Π» "Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅". Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ гипСрссылки Π½Π° Web-страницы, хранящиС описания Ρ‚Π΅Π³ΠΎΠ² HTML ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² стиля CSS, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΈ тСксты ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° стиля, Ρ‚. Π΅. гипСрссылки Π½Π° Web-страницы со свСдСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ связаны с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Web-страницСй.

Π’Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, связанныС Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π² Web-Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΈ Web-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ часто. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Web-страницы β€” связанными ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Web-сцСнариями.

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС говорят, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ установлСны сСмантичСскиС связи. Π’Π°ΠΊΠΈΠ΅ связи ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ "Π³Π»Π°Π²Π½Ρ‹ΠΉ β€” ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ", "ΠΌΠ΅Ρ‚ΠΊΠ° β€” собствСнно Π΄Π°Π½Π½Ρ‹Π΅", ΡΠ²Π»ΡΡŽΡ‚ся составными частями большой структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ связанных Π΄Π°Π½Π½Ρ‹Ρ…. А процСсс установки сСмантичСских связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ называСтся сСмантичСской Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ.