Материал: Разработка интернет-браузера

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.4 Автоматическая сборка мусора

У программистов, работающих на Visual Basic, всегда возникали проблемы с утечкой памяти из-за так называемых циклических ссылок (ситуация, при которой объект А ссылается на объект В, а объект В ссылается на объект А). Если появление циклических ссылок было обусловлено логикой программы, компилятор VB не распознавал их, в результате чего память, занимаемая этими объектами, не освобождалась. Система сборки мусора, встроенная в .NET CLR, решает проблему циклических ссылок иначе - интеллектуальный алгоритм обнаруживает циклические ссылки, разрывает их и освобождает занимаемую память, что существенно ускоряет работу приложения, а так же уменьшает размер занимаемой им памяти.

2.5 Структурная обработка ошибок

Во всех версиях Visual Basic использовался механизм обработки ошибок, появившийся в самой первой версии BASIC. У него есть недостатки. Использование в современном языке программирования команды:Error Goto Err

<оператор или операторы, вызывающие ошибки>

…:Case Error-Number57"Your printer may be off-line."68"Is there a printer available?"

<Другие секции Case>

Case Else

< Все остальные случаи>Select

неимоверно усложняющей логику программы. В VB .NET реализована структурная обработка ошибок, самый современный и мощный механизм обработки ошибок:

Try

<оператор или операторы вызывающие ошибки>

Catch ex as Exception

<Первый обработчик ошибок>ex as Integer

<Второй обработчик ошибок>

End try,

что даёт возможность обработки различных исключительных ситуаций и ошибок.

2.6 Многопоточность

Многопоточная программа выполняет несколько функций одновременно. Например, в почтовых клиентах во время приема новых сообщений можно читать старую электронную почту. Пользователи ценят подобные возможности, но в прежних версиях VB написание многопоточных приложений было очень непростой задачей.

Многозадачность в современных операционных системах воспринимается как нечто само собой разумеющееся. До появления Apple OS X на компьютерах Macintosh не было современных многозадачных операционных систем. Правильно спроектировать операционную систему с полноценной многозадачностью очень трудно, поэтому за основу OS X пришлось взять систему Unix. Пользователь рассчитывает на то, что при одновременном запуске текстового редактора и почтового клиента эти программы не будут конфликтовать, а при приеме электронной почты редактор не перестанет работать. При одновременном запуске нескольких программ операционная система быстро переключается между программами, по очереди предоставляя им процессор (если, конечно, на компьютере не установлено несколько процессоров). В результате создается иллюзия одновременной работы нескольких программ, поскольку даже лучшая машинистка (и самое быстрое Интернет-соединение) не угонится за современным процессором.

Многопоточность (multithreading) в каком-то смысле можно рассматривать как следующий уровень многозадачности: вместо того, чтобы переключаться между разными программами, операционная система переключается между разными частями одной программы. Например, многопоточный почтовый клиент позволяет принимать новые сообщения электронной почты во время чтения или составления новых сообщений. В наше время многопоточность тоже воспринимается многими пользователями как должное.

В VB нормальной поддержки многопоточности не было никогда. Правда, в VB5 появилась одна из ее разновидностей - совместная потоковая модель (apartment threading). Совместная модель предоставляет в распоряжение программиста часть преимуществ многопоточности, но не позволяет использовать все возможности в полной мере. Рано или поздно с учебной машины приходится пересаживаться на настоящую, и VB .NET стал первой версией VB с поддержкой свободной многопоточной модели.

3. HTML

.1 Общие сведения о HTML

HTML (от англ. HyperText Markup Language - «язык разметки гипертекста») - стандартный язык разметки документов во Всемирной паутине. Большинство веб-страниц создаются при помощи языка HTML (или XHTML). Язык HTML интерпретируется браузером и отображается в виде документа, в удобной для человека форме.

HTML является приложением SGML (стандартного обобщённого языка разметки) и соответствует международному стандарту ISO 8879.

Язык HTML был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1991-1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. HTML успешно справлялся с проблемой сложности SGML путём определения небольшого набора структурных и семантических элементов (размечаемых «тегами»), служащих для создания относительно простых, но красиво оформленных документов. Помимо упрощения структуры документа, в HTML внесена поддержка гипертекста. Мультимедийные возможности были добавлены позже. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В идеале, текст с разметкой HTML должен был без стилистических и структурных искажений воспроизводиться на оборудовании с различной технической оснащённостью (цветной экран современного компьютера, монохромный экран органайзера, ограниченный по размерам экран мобильного телефона или устройства и программы голосового воспроизведения текстов). Однако современное применение HTML очень далеко от его изначальной задачи. Например, тег <TABLE>, несколько раз использованный для форматирования страницы, которую вы сейчас читаете, предназначен для создания в документах самых обычных таблиц, но, как можно убедиться, здесь нет ни одной таблицы. С течением времени, основная идея платформонезависимости языка HTML была отдана в своеобразную жертву современным потребностям в мультимедийном и графическом оформлении.

Текстовые документы, содержащие код на языке HTML (такие документы традиционно имеют расширение «html» или «htm»), обрабатываются специальными приложениями, которые отображают документ в его форматированном виде. Такие приложения, называемые браузерами или интернет-обозревателями, обычно предоставляют пользователю удобный интерфейс для запроса веб-страниц, их просмотра (и вывода на иные внешние устройства) и, при необходимости, отправки введённых пользователем данных на сервер. Наиболее популярными на сегодняшний день браузерами являются Internet Explorer, Firefox, Safari, Google Chrome и Opera.

3.2 Структура HTML-документа

HTML - это теговый язык разметки документов. Любой документ на языке HTML представляет собой набор элементов, причём начало и конец каждого элемента обозначается специальными пометками - тегами. Элементы могут быть пустыми, то есть не содержащими никакого текста и других данных (например, тег перевода строки <br>). В этом случае обычно не указывается закрывающий тег. Кроме того, элементы могут иметь атрибуты, определяющие какие-либо их свойства (например, размер шрифта для элемента font). Атрибуты указываются в открывающем теге. Вот примеры фрагментов HTML-документа:

<strong>Текст между двумя тегами - открывающим и закрывающим.</strong>

<a href="#"784085.files/image001.jpg">

Рисунок 5.1 - Внешний вид, интерфейс программы

Как видно на рисунке браузер имеет адресную строку, строку состояния, где отображается информация, кнопки навигации, и дополнительные кнопки.

Интерфейс приложения построен в виде табов (вкладок) что позволяет быстро переключатся между открытыми страницами (Рисунок 5.2).

Рисунок 5.2 - Вкладки с документами

Для того что бы закрыть вкладку необходимо нажать на крестик в правом верхнем углу активной вкладки, если необходимо закрыть не активную, а другую вкладку необходимо кликнуть по ней средней кнопкой мыши, как в Opera

Рисунок 5.3 - Адресная строка и кнопки навигации

На рисунке 5.3 изображены адресная строка и кнопки навигации. Адресная срока позволяет как просматривать адрес текущей страницы, так и вручную ввести тот url адрес на который необходимо осуществить переход

Кнопки навигации (слева направо):

Переход назад - позволяет вернуться к ранее открытому документу, осуществляет перемещение по истории переходов назад

Переход вперёд - осуществляет перемещение по истории переходов вперёд

Кнопка обновить - служит для намеренного обновления документа или загрузке по адресу введённому в адресной строке

Кнопка стоп - позволяет прервать загрузку страницы.

Рисунок 5.4 - Адресная строка

В адресной строке реализована функция быстрой подстановки адреса на котором уже побывал пользователь (Рисунок 5.4), что заметно сокращает время на набор нужного адреса

Рисунок 5.5 - Дополнительные кнопки браузера

Дополнительные кнопки предназначены для:

Кнопка со значком лупы позволяет открыть окно для поиска необходимой информации в интернете (Рисунок 5.6)

Рисунок 5.6 - Окно поиска в действии

Окно поиска позволяет открыть страничку с найденной информацией как на текущей вкладке, таи создать новую

При клике на логотип Google происходит переход на главную страницу этой компании

Кнопка с изображение шестерни вызывает окно «О программе» (Рисунок 5.7)

Рисунок 5.7 - Окно информации «О программе»

В данном окне есть две особенности: кнопка «Настройки…» открывает дополнительное окно с настройками, где можно ввести адрес страницы по умолчанию, которая будет открываться в каждой новой вкладке. Так же ссылка которая вызывает окно, позволяющее отправить пожелания разработчику.

Рисунок 5.9 - Окно «Настройки»

Рисунок 5.9 - Окно «Отправить сообщение разработчику»

Кнопка Отменить в окне настроек позволяет вернуть значения по умолчанию даже если была нажата кнопка применить.

Ниже расположены три кнопки (Рисунок 5.5) с надписями «s», «n», «x»

Кнопка «s» (Source) - открывает окно в котором показывается исходный код страницы.

Кнопка «n» (New) -Создаёт новую вкладку.

Кнопка «x» - так же, как и кнопка на табах, позволяет закрыть текущую вкладку.

Рисунок 5.10 -Меню вкладки

Меню страницы открывает доступ к основным операциям над вкладкой. Таким как открытие документа, так же возможно открытие нескольких документов, для которых будут созданы отдельные вкладки. Создание окна или вкладки. Сохранение документа на компьютере. Просмотр исходного кода, свойств, закрытие вкладки. Выход из приложения.