Как сделать популярный сайт. ~~~~~ Java Script. Джава Скрипт. ~~~~~
Добрый день,
уважаемые читатели рассылки
"Как сделать популярный сайт" Выпуск 153.
~~~~~ Java Script. Джава Скрипт. ~~~~~
Внимание! Если ваша почтовая программа не отображает корректно рисунки или тексты, то Нажмите здесь ::
http://kocby.ru/post/webmaster/text/issue153.html
Java Script
Если Вы не популярны,
Значит, Вас как бы и не существует...
Не могу сказать, что тема "Джава Скрипт" является для нашего Клуба совсем уж новой. Немного мы баловались с этим языком в плане создания или
модификации разных простейших игрушек, например, такой как -
Но вот настало время задуматься о серьезном использовании Джава Скриптования.
Вообще говоря, материала по "Джава Скриптованию" в Интернете очень много, в том числе качественного и бесплатного. Навскидку рискну порекомендовать
javascript.ru, а уж если он не понравится, спрашивайте у Гугла и Яндекса.
А у нас сегодня будет разговор чисто практической направленности. Минимум теории. Я даже не буду говорить о том, что "Джава Скрипт" и "Джава
просто"...
... это есть абсолютно разные вещи, хотя об этом говорят авторы всех учебников по "Джава Скрипт" и даже некоторые авторы учебников по
"Джава"...
Немного теории по вопросу все-таки придется затронуть, чтобы сразу ввести в курс дела новичков в веб-программировании.
Итак, вкратце, мы имеем винегрет со следующими компонентами.
1. Язык разметки HTML или его "строгая", "правильная" версия XHTML (соответствующая стандартам w3.org). Нужен для того, чтобы браузер мог
предоставить для просмотра документ конечному пользователю.
2. Примочка к HTML под названием CSS, Cascading Style Sheets — каскадные таблицы стилей. Нужен для облегчения решения задач дизайнерского характера. Суть CSS
разделение контента и дизайна документа. Идеология такая. За контент (содержание) отвечает HTML документ, а за дизайн - CSS.
Пока все понятно? Не переживайте, это только начало.
3. Динамика, программирование на сервере, примочка к HTML - язык PHP. Дает возможность пользователям вводить данные, хранить данные и обрабатывать данные на
сервере. За функционирование сервера отвечает хостинговая компания.
4. База данных MySQL. Это уже примочка к PHP. Позволяет удобно хранить и обрабатывать данные. Прошу здесь, ранее и далее не придираться сильно к
термину "примочка", который я сам и придумал. Разумеется, MySQL, строго говоря, не является каким-то подчиненным элементом к PHP. Просто так уж
почему-то складывается на практике.
5. Наконец-то! Подобрались к нашей сегодняшней теме. ДжаваСкрипт (JavaScript) - позволяет выполнять программки на рабочей станции пользователя. Суть - тонкая
доводка. Нет смысла передавать явно неправильные данные от пользователя на сервер. Логично провести первичную проверку сразу на компьютере пользователя.
Типичные примеры: проверить наличие "собаки" и "точки" в емейле, чтобы пароль состоял только из определенных символов, был нетривиален и
имел достаточную длину и т.д.
Весь современный (2010-го года) программистский мир Интернета держится на пяти упомянутых пунктах. Есть, конечно, существенные альтернативы (aspx к пункту 3
или PostgreSQ к пункту 4), отклонения и расширения (Ajax к пункту 5), но мы говорить о них не будем, т.к. тогда мы совсем запутаемся. А наша задача
заключается немного в другом, а именно - сообразить, как из этих ингредиентов сварить нечто полезное и съедобное.
Перед тем, как приступить к практической работе, я прочитал пяток книжек по JavaScript, попробовал приводимые тестовые примеры. Пришел к мысли, что
практическая ценность (которую можно использовать сразу) заключается в проверке ключевых полей форм.
Разумеется, авторы всех руководств предлагают свои решения подобных моментов, но так как я взял у них "best of the best" + добавил немного своего,
но у меня по логике должна быть лучшая версия.
Короче говоря, если вам понравилась эта версия, можете взять и использовать для своих целей. Чтобы вам было проще, скачать сам скрипт можно здесь (хотя, конечно, вы прекрасно понимаете, что он уже где-то есть на вашем компьютере, просто
искать не очень удобно).
И еще, если вам нетрудно, пульните какое-нибудь тестовое сообщение, типа "время отправки такое-то".
Теперь о неприятном открытии.
К сожалению, все пять упомянутых выше технологий подружить на указанной страничке не удалось.
Конкретно, JavaScript решительно не захотела дружить с CSS вот в каком месте.
Следите за моей логикой (буду рад, если увидите в ней дыру!)
Далее, если перед использованием JavaScript будет что-то вроде обычной попытки использования CSS -
...
(p class="courier16" align="justify")
Тут какой-то текст, все равно какой...
(/p)
...
... то Javascript отрабатывается со страшными глюками. Причем нельзя сказать, что вообще не работает, а работает "частично"...
Я поэкспериментировал и могу сказать с точностью 99% - все дело в слове class, если на страничке Javascript встречает class, относящейся не к ней, а к чужой
технологии (в нашем случае - CSS), то глюки неизбежны...
Проблему можно обойти, причем разными способами. Например, использовать фреймы. Т.е. использовать Javascript во фрейме, где нет чужеродных классов. Но это
все как-то негармонично, некрасиво, грубо. К тому же, фреймы - это свои косяки и глюки. А хочется получить набор простых и прозрачных решений.
В данном случае я поступил, как опытный хирург. Если два органа не хотят работать совместно, наименее нужный просто удаляется.
В данном случае, я удалил CSS. Сначала только до вступления в игру Javascript. Потом подумал, да и удалил полностью.
Почему обязательно так - не знаю. Но загадка очень интересная, я над ней думаю.
Помимо банального любопытства тут есть и практический интерес. Если разрешить эту проблему, можно будет очень удобно программировать сразу на всех пяти
технологиях, применяя каждую в нужной пропорции для конкретного участка.
А если вы знаете отгадку на эту загадку - сообщайте.
Не исключаю, что отгадка лежит прямо перед носом... Скорее всего, надо почитать умную книжку с названием типа "CSS + Javascript для полных
кретинов" или что-то в этом роде. Если такая книжка? Так читайте и сообщайте о своих открытиях.
У меня на сегодня все. Спасибо за внимание. Пишите.