» » » Bob Swart - Интернет решения от доктора Боба


Авторские права

Bob Swart - Интернет решения от доктора Боба

Здесь можно скачать бесплатно "Bob Swart - Интернет решения от доктора Боба" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Bob Swart - Интернет решения от доктора Боба
Рейтинг:
Название:
Интернет решения от доктора Боба
Автор:
Издательство:
неизвестно
Год:
неизвестен
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Интернет решения от доктора Боба"

Описание и краткое содержание "Интернет решения от доктора Боба" читать бесплатно онлайн.








Единственное различие между обычным CGI приложением, которое использует BDE для получения данных и нашим приложением без использования BDE это производительность. Кроме того, наше CGI всего лишь 70 KB, оно не нуждается в загрузке BDE, так что время загрузки еще меньше (в результате еще более высокая производительность). В действительности реальные CGI приложения, использующие BDE, часто используют ISAPI (Information Server API) или NSAPI (Netscape Server API) расширения для сохранения CGI приложения "все-время-в-полете (in the air)".

Еще больше можно повысить производительность, если вместо файла записей использовать массив записей с предварительно инициализированными значениями! Вместо создания файла с записями, Я генерирую Паскаль код для этой цели. Таким образом, я могу генерировать исходный Паскаль код сразу с нужной информацией. Не нужды в файле записей. И сразу после компиляции я имею одиночное приложение на Дельфи 2, размером всего 77824 байта, которое содержит информацию об 44 книгах внутри самого себя.

Книги внутри, разбор переменных среды, чтение стандартного ввода, генерация HTML страницы и отправка ее на стандартный вывод с динамическим формированием содержимого в зависимости от запроса на форме. Уверен, что единственный способ получить еще более быстрое приложение, это вернуться обратно к статическим страницам без запросов.

2.2.9. Подсчет обращений

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

if DataRec.Author <> '' then

begin

{$IFDEF DEBUG}

  writeln('Author: ',DataRec.Author,'<BR>');

{$ENDIF}

  for i:=1 to Books16 do

    if Pos(DataRec.Author,Book16[i].Author) <> 0 then

      Inc(Result16[i]);

  for i:=1 to Books32 do

    if Pos(DataRec.Author,Book32[i].Author) <> 0 then

Inc(Result32[i])

end;

Заметим, что конструкция {$IFDEF DEBUG} может быть использована для вывода значения входного поля в стандартный вывод, так что мы можем использовать наше CGI приложение для отладки формы. Отладка вашего CGI приложения может оказать трудной задачей, поскольку вам нужен Web сервер и браузер для этого…

2.2.10. Результаты запроса

Теперь посмотрим на последнюю часть CGI приложения: часть, в которой генерируется HTML код. Здесь я использую другое свойство расширенного HTML, именованные таблицы, что бы вывод выглядел красивее. Для каждой записи, у которой счетчик более единицы, я выводу счетчик, название, автора, издательство, ISBN, уровень, техническое содержание, качество книги, стоимость и общее значение. Я также включаю ссылку из названия на другое место, где находится более подробное описание. С помощью этого великолепного свойства динамических HTML страниц: вы даже можете включать ссылки на статические страницы, так как результат запроса, часто стартовая точка для прыжка в другое место!

writeln('<HR>');

writeln('<P>');

writeln('<H3>The following books have been found for you:</h3>');

writeln('<TABLE BORDER>');

writeln('<TR>');

writeln('<TH><B>Hits</B></TH>');

writeln('<TH><B>Title</B></TH>');

writeln('<TH><B>Author</B></TH>');

writeln('<TH><B>Publisher</B></TH>');

writeln('<TH><B>ISBN</B></TH>');

writeln('<TH><B>Level</B></TH>');

writeln('<TH>Con</TH>');

writeln('<TH>Wri</TH>');

writeln('<TH>Val</TH>');

writeln('<TH><B>Tot</B></TH>');

writeln('</TR>');

После того как заголовок написан, самое время выводить сами записи. Я не хочу сортировать их по рейтингу от 5 до 1, так что я просто иду по списку книг и печатаю каждую со своим рейтингом. Этот путь, потому что я знаю, что книги уже отсортированы по рейтингу в основной базе delbooks.db (которая отсортирована по уровню и рейтингу). Обычно книги в верху списка уже лучший ответ на заданный вопрос.

  if DataRec.Delphi2 then

  begin

    for Hits := 5 downto 1 do

    begin

      for i:=1 to Books32 do if Result32[i] = Hits then

      begin

        writeln('<TR>');

        writeln('<TD>',Roman[Hits],'</TD>');

        writeln('<TD><A HREF="',root32,Book32[i].HREF,'">',Book32[i].Title,'</A></TD>');

        writeln('<TD>',Book32[i].Author,'</TD>');

        writeln('<TD>',Book32[i].Publisher,'</TD>');

        writeln('<TD>',Book32[i].ISBN,'</TD>');

        writeln('<TD>',Level[Book32[i].Level],'</TD>');

        writeln('<TD>',Book32[i].TechnicalContentsQuality,'</TD>');

        writeln('<TD>',Book32[i].QualityOfWriting,'</TD>');

        writeln('<TD>',Book32[i].ValueForMoney,'</TD>');

        writeln('<TD><B>',Book32[i].OverallAssessment,'</B></TD>');

        writeln('</TR>')

      end

    end;

    if DataRec.Delphi1 then writeln('<TR></TR>')

  end;


  if DataRec.Delphi1 then

  begin

    for Hits := 5 downto 1 do

    begin

      for i:=1 to Books16 do if Result16[i] = Hits then

      begin

        writeln('<TR>');

        writeln('<TD>',Roman[Hits],'</TD>');

        writeln('<TD><A HREF="',root16,Book16[i].HREF,'">',Book16[i].Title,'</A></TD>');

        writeln('<TD>',Book16[i].Author,'</TD>');

        writeln('<TD>',Book16[i].Publisher,'</TD>');

        writeln('<TD>',Book16[i].ISBN,'</TD>');

        writeln('<TD>',Level[Book16[i].Level],'</TD>');

        writeln('<TD>',Book16[i].TechnicalContentsQuality,'</TD>');

        writeln('<TD>',Book16[i].QualityOfWriting,'</TD>');

        writeln('<TD>',Book16[i].ValueForMoney,'</TD>');

        writeln('<TD><B>',Book16[i].OverallAssessment,'</B></TD>');

        writeln('</TR>')

      end

    end

  end;


  writeln('</TABLE>');

  writeln('<HR>');

  writeln('<A HREF="http://www.drbob42.com">Dr.Bob''s Delphi Clinic</A>');

  writeln('</BODY>');

  writeln('</HTML>');

  writeln;

  Free

end

2.2.11. Отладка CGI

Страницу HTML с результатом, сгенерированную по запросу мы модем увидеть выполнив CGI приложение. Для этого требуется (персональный) Web сервер. По этому я написал небольшую программу отладки, используя Delphi 2.01 и NetManage HTML control:

2.2.12. Заключение

Я надеюсь, что я показал, как мы можем писать интерактивные Интернет (Интранет) CGI приложения с помощью Delphi 2 используя CGI, WinCGI и Delphi 3 ISAPI/NSAPI Web Modules. Лично я планирую делать многое с помощью Дельфи для Интернет и Интранет.

3. Microsoft WinInet

Многое из того, что вы узнали, позволяет вам писать Интернет приложения с помощью Delphi. Особенно с помощью новых средств в Delphi 3 таких как ActiveForms и Web Modules. Но иногда мы хотим сделать, что еще быстрее и проще. Иногда мы просто хотим загрузить файл из Интернета. В терминах Интернета это означает, что мы хотим использовать FTP (file transfer protocol) клиента. И если вы верите мне, то вам не требуется ни какой FTP клиент, но если вы верите мне, то вы можете написать свой…

3.1. FTP

Как я сказал во введении, FTP означает File Transfer Protocol, который описан в RFC 959. Модель связи FTP может быть реализована с помощью сокетов, но это более низкоуровневое решение и если вы посмотрите спецификацию, то поймети, что написание программы FTP клиента с нуля не такая уж простая задача. С другой стороны, мы можем использовать NetManage TFTP компонент из Delphi 2.01 (и выше) и C++Builder. Я пробовал использовать этот компонент несколько раз, и нашел его просто глюкавым, особенно для файлов свыше 10 Kb. Я могу понять, почему Microsoft (первый разработчик Internet Solutions Pack) не захотела использовать его и продала затем NetManage, которая тоже не справилась с ним и продала далее фирме NetMasters. Проблема в том, что Internet Solutions Pack – хотя и бесплатный – основан на наборе с ограничениями ActiveX, и каждая компания которая использует его также имеет более лучшее решение (обычно не бесплатно). Поддержка и документация всегда отвратительная…

Так что же, назад к низкоуровневому программированию? Ни в коем случае. Как всегда на помощь приходит Microsoft

3.2. WinInet


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Интернет решения от доктора Боба"

Книги похожие на "Интернет решения от доктора Боба" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Bob Swart

Bob Swart - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Bob Swart - Интернет решения от доктора Боба"

Отзывы читателей о книге "Интернет решения от доктора Боба", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.