Table Of ContentЕлена Бенкен
Геннадий Самков
Санкт Петербург
-
БХВ Петербург
« - »
2009
УДК
ББК 681.3.06
3Б2.973.26-018.2
46
Бенкен Е С
, . .
Б программирование для Интернета Е С Бенкен Г А Самков
46 СПбAJAБХXВ: Петербург с ил С / . . , . . . —
.: - , 2009. — 464 .: . + ( D-ROM)
ISBN 978-5-9775-0428-7
Описанатехнология ипоказанывозможности которыеоткрываютсяпередразра
ботчиком с е е применен AиеJмAXР а ссмотрена объектная м,о дель док умента в -
и ф ун кци ив Изло.ж еныосновы языка иформ ат По: кDазOаMнп р иJнaцvиaпSrгipеt
н еDраOцMии- асинхро н нPыHхP.з апросов к серверу средс XтвMамLи JSOСNд.е лан обзо р основн ых-
библиотек и JavaScПriоpдt.р обнора ссмотр еныпопу
лJaяvрaнSыcеripиt-перспекти: вPнrыoеtotбyиpбe,л иSоcтriеpкtиaculous, EиxtJS jQuоeпryи.с ана объек тная модель языка-
накоторойбаз ируютсяэти бEиxбtлJSи оте кjиQuпeрryи:м енение запро сов обр аботка
сJaоvбaыSтcиrйiptи, др Привед ено большо е ко личество пр;а ктических п рAимJAерXо-в Компа;к тдиск со
держитд ис три. бутивы сервера модуля исервера исхо. дныекод-ыопи сы-
ваемых библиотек расп рWоeсbтр-аняемых, наосно вPаHниPи л ицензии MySQаLта, кжепример ыизк ниги -
, GPL, .
Для программистов
Web-
УДК
ББК 681.3.06
32.973.26-018.2
Группаподготовкииздания
:
Главныйредактор ЕкатеринаКондукова
Зам главногоредактора ИгорьШишигин
.
Зав редакцией ГригорийДобин
.
Редактор АннаКузьмина
Компьютернаяверстка НатальиКараваевой
Корректор ВикторияПиотровская
Дизайнобложки ИнныТачиной
Оформлениеобложки ЕленыБеляевой
Зав производством НиколайТверских
.
ЛицензияИД№ от Подписановпечать
Форм ат 02429 П е2ч4а.0т7ь.0о0ф. сетная Усл п еч л 04.03.09.
70Т×и1р0а0ж1/16. экз З аказ№ . . . . 37,41.
БХВПетербург 2000С ан.к тПете рб у р г Измайловскийпр
" - ", 190005, - , ., 29.
Санитарноэпидемиологическоезаключениенапродукцию
№ Д - от г выдано Фе деральной службой
п 7о7н.9а9д.з6о0р.9у5в3с.ф.0е0р3е6з5а0щ.0и4т.ы08п ра в14п.о0т4р.2е0б0и8те л. ейибла гополучиячел овека
.
Отпечатаносготовыхдиапозитивов
вГУП Т и пографи я Наука
Са н"ктПетербург " лин"и я
199034, - , 9 , 12
БенкенЕ С СамковГ А
ISBN 978-5-9775-0428-7 © Оформ ле.н ие., издател ьс.т во., 2Б0Х09В Петербург
© , " - ", 2009
Оглавление
Введение
.................................................................................................................. 3
Терминология
Структуракни г..и........................................................................................................ 3
Какработа тьскн .и...г.о..й............................................................................................... 5
Ист очникиин ф ормаци .и............................................................................................ 6
Благодарно сти ......................................................................................... 7
......................................................................................................... 7
ЧАСТЬ ТЕХНОЛОГИИ СОСТАВЛЯЮЩИЕ
I. , AJAX ................................ 9
Глава Принципработы
1. AJAX ...................................................................... 11
Глава Объектно ориентированноепрограммирование
2. всерверны- хприложениях
................................................................. 14
Принципыобъектно ориентированногопрограммирования
Объектная модельв- Классыиоб ъекты ............................ 14
Конструкто ркласс а PHP 5. .................................................. 15
Созданиеобъ екта ............................................................................................... 16
Деструкто робъек т..а................................................................................................ 17
Копировани еиклон .и..р..о..в..а..н..и..е...о..б..ъ..е..к..т..о..в............................................................... 17
Наследование .............................................................. 19
Финальныекл .а..с.с..ы................................................................................................... 20
Доступксв ойствам ..и...м...е.т..о..д..а..м....к..л..а.с..с..а.................................................................. 22
Статиче с киесвойств а иметоды класс а................................................................ 24
Абстрактные классыи и нтерфей сы .............................................................. 27
Константакл асса .................................................................... 28
Ключевое слово ................................................................................................... 29
Обработка ошиб оinкstanceof.................................................................................... 30
Автозагруз какласс а................................................................................................ 30
Итераторы п росмот р...в..с..е..х...о..б..щ...е..д..о..с.т..у..п..н..ы...х...с..в..о..й..с..т.в...о..б..ъ..е..к..т..а............................ 32
Синглетон: .......................... 33
............................................................................................................... 34
Оглавление
IV
Глава Объектно ориентированноепрограммирование
3. -
в
JavaScript ........................................................................................... 35
Созданиеобъектаспомощьюоператора
new .................................................... 36
Созданиеобъектовспомощьюобъектныхлитералов
...................................... 36
Конструкторобъекта
............................................................................................ 37
Функциикакобъекты
........................................................................................... 38
Добавлениеметодовприпомощипрототипа
..................................................... 38
Наследованиеприпомощипрототипа
................................................................ 40
Созданиекласса наследника
- ................................................................................ 41
Полиморфизм
........................................................................................................ 42
Частныеэлементыклассов
................................................................................... 43
Пространстваимен
................................................................................................ 44
Обработкаошибок
................................................................................................ 45
Синглетоны
............................................................................................................ 46
Замыкания
.............................................................................................................. 47
Применениезамыканий
.................................................................................... 48
Глава и
4. XML JSON ......................................................................................... 51
Язык
XML .............................................................................................................. 51
Синтаксис Правильнооформленный
XML. XML .......................................... 51
декларация
XML- ................................................................................................ 53
Атрибуты
............................................................................................................ 53
Комментарии
...................................................................................................... 53
Процессуальнаяинструкция
............................................................................. 55
Пространстваимен
XML .................................................................................. 55
Особыесимволы
................................................................................................ 56
CDATA ............................................................................................................... 57
JSON ....................................................................................................................... 58
Глава Объектнаямодельдокумента
5. ........................................................... 61
Объект
Node ........................................................................................................... 64
Свойстваиметодыобъекта
Document ................................................................ 65
Доступкузлу
DOM ........................................................................................... 66
Объект
Element ...................................................................................................... 66
Объект
NodeList ..................................................................................................... 67
Объект
NamedNodeMap ........................................................................................ 67
Объект
Attr ............................................................................................................. 68
Объект
Text ............................................................................................................ 68
Объект
DOMImplementation ................................................................................. 68
Оглавление
V
Глава в
6. DOM JavaScript ................................................................................ 69
Объект
Создани Eеlement ...э..л..е.м...е..н..т..а..с...п..о..м...о..щ...ь..ю....м..е..т..о..д..о..в.............и...в..к..л..ю...ч..е..н..и..е...е..г.о........... 69
вдеревод HокTуMмеLн-та DOM
Ч тениед анныхиз .........д..о..к..у..м...е.н..т..а....................................................................... 71
XML- ..................................................................... 73
Глава функциив
7. DOM- PHP ......................................................................... 75
Создание документаспомощью функций
XML- DOM- ..................................... 76
Глава Проблемарусификации приложений
8. Web- .................................... 81
Кодировки
Передачал о..к..а..л..и..з..о..в..а.н...н..ы..х...д..а..н..н..ы...х...в...п..р..о..т..о..к..о..л..е.................................................. 81
Кодирова ниесимволоввс ценарии HTTP ..................................... 83
Русскийязык в JavaScript .................................................... 85
Локализ ация PHP ............................................................................................... 86
MySQL ............................................................................................. 89
ЧАСТЬ СОЗДАНИЕ ПРИЛОЖЕНИЙ
II. AJAX- .......................................... 91
Глава Объект
9. XMLHttpRequest ..................................................................... 93
Глава Использование исозданиепериодическихзапросов
10. XML ..... 101
Созданиепериодическихзапросов
.................................................................... 108
Глава Запросданныхссервера
11. MySQL ................................................. 112
Передачаданныхвформате
JSON .................................................................... 118
ЧАСТЬ БИБЛИОТЕКИДЛЯРАБОТЫС
III. AJAX ................................ 125
Глава Обзорбиблиотекдлясоздания приложений
12. AJAX- .................. 127
Глава Библиотека
13. Prototype ..................................................................... 131
Полезныеметодыв
Класс Prototype ............................................................................. 132
Класс Element ....................................................................................................... 135
Aвrray .......................................................................................................... 137
AJКAлXас с Prototype ................................................................................................. 141
Класс Ajax.Request ........................................................................................... 142
Класс Ajax.Response ......................................................................................... 143
Класс Ajax.Updater .......................................................................................... 144
Испол ьAзjоaвxа.PнeиrеiodicalUзpаdпaрtоeсrо..в...в..................................................................... 145
AJAX- Prototype .................................................. 145
Оглавление
VI
Глава Библиотека
14. script.aculo.us.............................................................. 149
Эффекты
Перетаски ..в..а..н..и..е...и...с..о..р..т.и...р..о..в.к..а.............................................................................. 150
в (Draggable & Sortable) ..................................... 153
AJАAвXто д оscпrоipлtн.aеcнuиlеo.us ......................................................................................... 157
Класс ............................................................................................... 157
Ajax.InPlaceEditor ................................................................................. 161
ЧАСТЬ БИБЛИОТЕКА
IV. EXTJS ............................................................... 165
Глава Структураиидеологиябиблиотеки
15. ............................................ 167
Соглашенияобименах
Конфигурир ова ние .....и...п..е..р..в.ы...й...п..р..и...м..е..р...п..р..и..м...е.н...е.н..и...я................................. 169
Объект ExtJS ................................ 169
Eзxаtп.Eасleиmтеeсnьt .в..ы...ж..и..г..а..т..е.л..е..м....ж...у.ч..к..о..в....................................................... 171
FirКeоbнuтgе —кс т ..................................................... 172
Заданиекон .т..е.к..с..т..а...в.............................................................................................. 172
Адаптер ыипростр а нEсxтtвJоS и...м..е..н........................................................................... 173
Механизм н аследованияв ......................................................................... 175
Вызовмет одабазовогок ла EсxсаtJS ........................................................................ 175
Обрабо ткасоб ытийв ........................................................................... 176
События ExtJS ................................................................................ 177
События DOM .................................................................................................. 177
Пользова тJеaлvaьSскcиriеptс .о..б..ы..т..и..я............................................................................... 177
............................................................................. 179
XКлtyаpсeсsы ................................................................................................................... 180
Класс ExtJS ........................................................................................................ 181
Класс Component .............................................................................................. 181
Класс BoxComponent........................................................................................ 183
Класс Container ................................................................................................ 184
Компоно Pвaкnаel ....................................................................................................... 184
(layout) ............................................................................................ 184
Глава Поискэлементов класс
16. : DomQuery .............................................. 187
Выборузлов
Селе кторы DэлOеMме .н..т..о..в........................................................................................ 187
Селекторы атрибутов ...................................................................................... 188
Отборэлем ентов ...................................................................................... 188
CSS Value selectors ............................................................ 188
Глава Панелиикомпоновкаэлементов
17. ................................................. 196
Простаяпанель
Вложенн ыепан е..л..и................................................................................................ 196
.............................................................................................. 198
Оглавление
VII
Компоновкапанелей созданиеаккордеона
Панельснес кольким:и вкладкам и ..................................................... 199
..................................................................... 203
Глава Формы
18. ............................................................................................... 209
Созданиеэлементаформы
Компонов каформы ................................................................................. 209
Передачадан ныхфо ..р..м..ы....н..а...с..е.р..в..е..р...м...е.т..о..д..о..м...................................................... 210
Проверка формс помощь ю класса К аsuлbенmдitа .р..ь...п..о..д..с..к..а..з.к..а................... 213
VTypes. - ................. 217
Глава Визуальныеэффекты
19. . Drag & drop ............................................. 222
Свертываниеиразвертываниеблока
Изменениера зм еровблока ................................................................ 222
................................................................................. 226
Drag & drop .......................................................................................................... 229
Глава Простыевиджеты
20. ............................................................................ 236
Всплывающиеподсказки
.................................................................................... 236
Глава Созданиередактируемыхтаблиц
21. ................................................. 240
Созданиебазыданных
Серверны йсце нарийд л..я...з..а.п..р..о..с..а...к...б..а..з.е...и...г..е..н..е..р..а.ц...и..и...о..т..в.е..т..а...к..л..и..е..н..т..у............ 240
Клиентская часть исцена ри й ........... 241
Разработка динам:и HчеTсMкиLр е дактируем JоaйvaтSабcrлiиpцt .ы............................................. 243
.......................................... 249
ЧАСТЬ
V. jQuery ............................................................................................... 259
Глава Знакомствос
22. jQuery ....................................................................... 261
Установкабиблиотеки
Чтотакое ........................................................................................ 262
$()? ....................................................................................................... 263
Глава Функцииядра
23. jQuery ..................................................................... 265
Доступкобъекту
jQuery ..................................................................................... 270
Глава Селекторы
24. jQuery ........................................................................... 275
Базовыеселекторы
Иерархи ческиеселе ..к..т.о..р..ы..................................................................................... 275
Основныефиль тры .................................................................................. 280
Фильтрыс одержим.о..г..о......................................................................................... 286
Фильтры видимыхине.в..и..д..и..м...ы...х...э.л..е..м...е.н...т.о..в....................................................... 298
Фильтры атрибуто в ..................................................... 302
Фильтры потомков ............................................................................................. 306
Селектор ывформа .х............................................................................................. 316
Фильтрысо с тоянияэ .л..е.м...е..н..т..о..в...ф..о..р..м................................................................... 323
................................................................ 326
Оглавление
VIII
Глава Событияв
25. jQuery ............................................................................ 331
Помощникиприработессобытиями
................................................................ 332
Глава Манипуляцииэлементамив
26. jQuery ............................................ 352
Изменениесодержимогоэлементов
Вставкасод ержимоговну трьэлемен ..т..о..в............................................................ 352
Вставка содержимого снаруж иэлементо .в......................................................... 358
Обертыв аниеэлемент ов ....................................................... 364
Замещение у даление ко .п..и..р..о..в..а..н..и..е...э.л..е..м...е..н..т.о..в.................................................. 369
, , ................................................ 371
Глава запросыв
27. AJAX- jQuery ................................................................. 378
Загрузкасодержимого
Реализац ия запро с..о..в.................................................................................... 378
Реализация GET- запросо.в.................................................................................. 385
Полныйкон PтрOоSлTь-над ....з..а..п..р..о..с.а..м...и............................................................. 392
AJAX- ........................................................... 395
Глава События в
28. AJAX jQuery ................................................................ 402
Глава Расширениядля
29. jQuery ................................................................. 410
Плагин
Плагин jQuery Form ............................................................................................ 410
Резюме Live Query ............................................................................................... 416
.................................................................................................................. 420
ПРИЛОЖЕНИЯ
................................................................................................ 421
Приложение Установка сервера модуля
1. исервера Web- в Apache, PHP 5
MySQL Windows .............................................. 423
Установкасервера
Директи выконф иAгpуaрcаhцeи .и................................................................................. 423
Установкамо дуля Apache ................................................................. 425
Установка сервера PHP ....................................................................................... 426
MySQL 5 .............................................................................. 428
Приложение Отладка Использование
2. JavaScript. Firebug ................... 431
Выполнениеиотладкакода
Просмотр заголо вков JиavaScripзtа .п..р..о..с..о..в.................................................. 432
HTTP- AJAX- ................................................ 434
Приложение Описаниекомпакт диска
3. - ..................................................... 436
Литература
......................................................................................................... 437
Предметныйуказатель
.................................................................................... 439
Не секрет что встречаются профессионалы практики которые на бумаге не
мог ут стру, ктур ированно изл ожить свои знан-ия и опы,т и есть т е кто пиш ет
много книг но не обла дает реал ьным практи че ским, оп ытом ,К сч астью
авторы книг, и не от носятся н и к первым ни ко вторым В Елен. е С ергеевне,
сочетае тся пр офе ссиональн ый оп ыт и ум, ени е д онести э.т от опыт до аудито
рии Как и предыдущие книги автор а эту отли чает от многи х дру гих то что-
изло. женн ы й материал апроби рован ,н а с отнях сл уш ателей самых раз, ных
компаний к оторые пр оходили обуч ение у Елен ы Сергеевны Для лучшего
закреплен,и я матери ала в книге приведен ы различн ые практич. еские задания
длясамостоя тельнойра,б о ты
.
Мы считаем что книга является качественным продуктом и заслуживает то
го чтобы ее, про читали те кого интересует д анная облас ть Как и мно гие-
др,у гие кн иги написанны е ,н ашим и преподав ателями данная. книг а в ыходит
всерии , совет уютпроф ессионалы ,
"Avalon.ru — ".
Опыт предыдущих книг показал как важен контакт между тем кто написал
книгу и тем кто е е изуч ает Кни, га н е позво ляет нал адить диал,о г м ежду ав
тором, и чит,а тел ем однако. для у спе шного вос приятия материа ла важ но-
иметь во зможность, задать п,р епод авателю во прос и полу чить квалиф, ициро
ванны й ответ Если после прочтения книги у вас по явились в опросы на ко-
торые в ы не н. ашли ответа если вы хотите п олуч ить еще бо льше пр,а кти че-
ских з ада ний чтобы повыс, ить с вою квалиф икацию если вы прос то хотите-
сказа ть спаси,б о авто ру данной книги вы можете сд,е лать это на фор уме на
, -
шегоучебногоцентравсоответствующемразделе
: http://forums.avalon.ru.
Навашивопросыответятличноавторыкниги
.
ПроректорСанкт Петербургскогогосударственного
- политехническ огоуниверситета
АлександрВитальевичРечинский
Деканфакультетапереподготовки
специа листовСПбГПУ
ЩукинАлександрВалентинович
Введение
Предлагаемая книга является учебником в полном смысле этого слова не
больше ноин емень ше ,
, .
Предполагается что читатель знаком с основами на среднем уров
, JavaScript -
не но ему не приходилосьвдаватьсявдеталиобъектноймоделиэтогоязыка
, .
Потребуются и знания основ но изложение объектной модели этого
PHP,
языкаприведено
.
Кроме того кратко излагаются основы Затем рассказывается как
, XML. ,
именно создается запрос к серверу и как на клиентской стороне обра
AJAX- -
ботатьответсервера
.
Большое внимание в настоящей книге уделено библиотекам по
зволяющ им упрости т ь и ускорит ь проц есс созда ния при лJоaжvaеSнcиrйiptг, лав-
нымобразом рассматри в аютсябиб лиотеки и Web- , -
jQuery ExtJS.
Терминология
В г появился термин обозначивший основное направление развития
И н2т0е0р5н ет.а Как ч, асто случается в информа ционных тех нологиях
термин ест —ь аWтeоbч н2о.0го. опр еделен ия нет Но явление которое о н обозначил,
все таки мо,ж н о охарак теризовать н еко.т оры ми общ,и ми черт ами Главный,
при-нцип усиление те хнологий за счет кол лективног. о разума
Web 2.0 — .
Ярким примером этого служит проект
С друг ого ресурса начала сь попул ярWнiоkсiтpьedеiщa е(оhдtнtpо:й//вwаiжkiнpоeйdiсaо.сoтrаgв).
ля ющейпо нятия , Google, -
Web 2.0 — AJAX.
асинхронный и
AэтJоAпXо д(Aхоsyдnкchпroоnсoтрuоs еJнaиvюaScпrоipлtь зaоnвdа XтеMльLс,к их интерфейс оJaвvaScripпtр и лXоMжеLн)и —й
при которо м данные запр ошенные пользова телем отобра жWаюebт-ся на уже за,
груж енной ст ранице, При этом не происходит пол, ной перезагруз ки стра ни-
цы обновл яется толь. ко ее часть И спользовани е стало наибол ее попу-
ляр, но после того как на.ч ала активно исп AолJAьзXов ать ег о при соз дании-
, Google