Рекомендуется: используйте ASP, чтобы сделать круговые диаграммы, барные диаграммы и т. Д. В нашей работе нам часто нужно преобразовать данные в гистограммы, круговые диаграммы и т. Д., Чтобы облегчить и интуитивно понятный анализ данных. Здесь я представлю вам компонент, который изготавливает круговые диаграммы и барные диаграммы в ASP: CSDRAWGRAPH, CSDGT.ZIP. Поскольку это компонент, нам нужно использовать REGSV, прежде чем использовать его.
Объектно-ориентированное программирование
По мере увеличения сложности дизайна программы методов структурированного программирования недостаточно. Основная причина недостаточного использования заключается в том, что в повторном использовании кода неудобно. Ориентированный на объект был родился метод, и он реализует относительно полные функции повторного использования кода посредством наследования. Многие студенты часто задают вопрос во время интервью при подаче заявления на работу. Давайте поговорим о том, что такое объектно-ориентированное программирование. Студенты без речи и возвращаются, чтобы спросить меня, как ответить на этот вопрос. Я сказал ему, что только одного слова достаточно. Объектно-ориентированное программирование-это инкапсуляция данных; Программирование парадигм (шаблонов) является инкапсуляцией алгоритмов. Позже, когда студент столкнулся с этой проблемой, он ответил на нее просто простым предложением, а другая сторона с восхищением посмотрела на студента (студент с гордостью сказал мне позже). Почему? Потому что только через тщательный опыт и практика может быть извлечена эта сущность.
Ориентированные на объект методы и идеи проектирования были фактически предложены еще в начале 1970-х годов. Цель состоит в том, чтобы заставить программу манипулировать данными с помощью функций. Таким образом, инкапсуляция данных реализована, и можно избежать ошибки, вызванной любым кодом в предыдущем методе проектирования. Это очень трудно найти и изменить эту ошибку. Тогда вы можете сказать, что даже если я не использую объектно-ориентированные, когда я хочу получить доступ к определенным данным, я просто использую функцию вызова для доступа к нему, разве это не будет хорошо? Да, это нормально, но это не обязательно. Люди ленивы. Когда я хочу добавить 1 в I, почему я должен назвать функцию? Забудьте об этом, легче сэкономить проблемы. Ха -ха, из -за этой лени трудно поймать, когда у программы есть ошибка. Объектно-ориентированный является обязательным, и решает вашу проблему лени со стадии компиляции.
По совпадению, объектно-ориентированное мышление на самом деле согласуется с решением проблем в нашей повседневной жизни. Например, я планирую выбросить чашку, как я могу его выбросить? Это слишком просто, поднимите чашку, идите к мусорному баку и выбрось! Обратите внимание на анализ этого процесса. Сначала мы выбираем объект ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Действия могут применить к нему. Лист бумаги может быть написан, разрывается, сожжен ... то есть, как только объект определяется, метод также определяется. Вот как наша повседневная жизнь. Однако, когда вы думаете о наших программировании и компьютерных операциях, это не так. Возьмите операцию DOS в качестве примера. Я хочу удалить файл с помощью: C:> Del File name <enter> в приглашении DOS. Обратите внимание на этот процесс. Действия находятся впереди (DEL), а объекты находятся в задней части (имя файла), а объектно-ориентированные методы находятся в противоположном порядке. Так что это просто вопрос порядка, какое влияние это окажет? Ха -ха, вы, должно быть, видели это явление: файл не найден. Ах ~~~, я был неправ, я был неправ, я набрал письмо в неправильном имени файла, поэтому я снова встал: C:> Del File name 2 <Enter>. К сожалению, есть снова, компьютерный отчет: только для чтения файла. Ха -ха, боль :). Таким образом, операция DOS фактически нарушает наши ежедневные привычки (конечно, никто не поднимал никаких возражений раньше), но теперь из-за использования объектно-ориентированного дизайна эти проблемы решаются во время компиляции, а не во время выполнения. obj.fun (), для этого оператора, будь то объект или функция, если есть какие -либо проблемы с вашим вводом, о нем сообщается во время компиляции, чтобы вы могли изменить его, а не делать ошибки во время выполнения, что заставит вас ловить ошибки повсюду.
В то же время, объектно -ориентированный может решить проблему повторного использования кода - наследование. Раньше я писал урок собак, с атрибутами (переменными): волосатые, 4 ножки, приподнятый хвост (тот, у кого опускающий хвост - волк), очень чувствительный нос и любит есть мясо и кости ... Методы включают (функция): способны бегать, запах, лая ... если он поймает крыс, люди будут называть его вмешательством. ОК, тип собаки был написан. Но в моей реальной жизни собака, которую я имею, очень похожа на собаку, которую я писал ранее, с небольшим разницей, то есть моей собакой, она: кудрявая и длинная, с маленьким носом, маленький рот ... Итак, я выпустил новый тип, называемый мопсом и добавил к собаке новые функции. Хорошо, программа завершена, и правильный код из предыдущего используется повторно - это преимущество объектно -ориентированного программирования. Мой успех просто стоит на плечах гиганта. Конечно, если вы используете VC, код, который больше всего использует библиотеку классов MFC.
====================================================================================
Хорошо, затем посмотрите, как мы используем ASP.
Каждый обычно использует язык сценариев IIS по умолчанию VBScript в качестве языка выполнения на стороне сервера ASP. Вначале сценарий VBS и HTML в основном смешаны вместе для достижения определенных функций. Например, вам нужно отобразить последние 5 записей на текущей странице, вот и все.
1. Сначала определите соединение с базой данных, например:
| Ниже приведено цитируемое содержание: db_path = ../database/cnbruce2005.mdb Установить conn = server.createObject (adodb.connection) connstr = provider = microsoft.jet.oledb.4.0; data source = & server.mappath (db_path) Conn.Open Connstr |
2. Затем создайте сбор записей базы данных для извлечения соответствующей информации
| Ниже приведено цитируемое содержание: Установить rs = server.createObject (adodb.recordset) SQL = выберите Top 5 * из [News] Порядок от n_id desc Rs.open SQL, Conn, 1,1 |
3. Наконец, отобразить данные с помощью метода цикла
| Ниже приведено цитируемое содержание: делать, пока не rs.eof response.write rs (n_title) Rs.movenext петля 'Также есть окончательные операции по выключению и выпуску Rs.close Установить RS = ничего |
Таким образом, здесь, в ответ. Перепись rs (n_title), для окончательного веб -дизайна подсчитано, что некоторые другие элементы тега HTML должны быть добавлены до и после него. Таким образом, сценарии VBS и HTML смешаны.
Давайте посмотрим на это снова. Если есть много страниц, которые должны отображать эти 5 записей, то нужно ли вам установить каждую страницу? Конечно, самое главное, что дизайн каждой страницы отличается. Тогда это повторение. Повторить где? Не могли бы вы не повторить это?
1. Для подключений к базе данных файл соединения базы данных Conn.asp установлен напрямую, и содержимое, как указано выше.
2. Поэтому, если вам нужно использовать базу данных и необходимо установить соединение, вы можете напрямую включить ссылки на файл подключения к базе данных.
<!-#Включите файл = conn.asp->
Итак, какие повторения сохраняются выше? Повторите каждое соединение базы данных. Это анти-дюпликация для некоторых общих кодов. Давайте посмотрим на это. Если я хочу, чтобы эта страница отображала 5 штук и эту страницу, чтобы отобразить 6 штук, что мне делать? Очевидно, что это может быть лишь простой изменением оператора SQL на текущей странице, такой как исходная модификация лучших 5 в топ -6.
Хорошо, продолжайте смотреть, есть ли повторения? Да, за исключением различных определений запроса SQL, все остальные являются дубликатами.
Итак, продолжайте думать о решении: можете ли вы самостоятельно определить количество извлеченных предметов? Я просто хочу извлечь только несколько предметов, но программа должна написать только один. Затем в это время функция пригодится. Например, я определяю такую функцию:
| Ниже приведено цитируемое содержание: Функция TopNews (tnum) Установить rs = server.createObject (adodb.recordset) SQL = SELECT TOP & TNUM & * из [News] Порядок от n_id desc Rs.open SQL, Conn, 1,1 делать, пока не rs.eof response.write rs (n_title) Rs.movenext петля Rs.close Установить RS = ничего Конечная функция |
Затем вы можете использовать TopNews (5) или TopNews (6), чтобы удовлетворить необходимость
... На первый взгляд, кажется, что ASP использует функции и, наконец, завершен. Поскольку основная программная функция превращается в функциональный модуль, вам нужно позвонить непосредственно при использовании этой функции на странице переднего плана. При необходимости измените значение параметра функции как идеальное окончание/.
Итак, почему классы были представлены в ASP? Что это за тип? И как это применить?
На языке сценариев ASP у VBScript есть ключевое слово класса, которое можно использовать для объявления пользовательского класса. например
| Ниже приведено цитируемое содержание: Название класса заявления Конечный класс |
Здесь государственные или частные члены могут быть объявлены в заявлениях, включая функции, участники и атрибуты.
JavaScript использует функцию для объявления класса, а затем определяет свойства в функции через это. Прототип и методы This.func определяет.
Какой из них просто выбрать, какой. После определения имени класса, то есть класса, что здесь можно сделать?
Первый. Документация MSDN: В Visual Basic 6.0 при создании и уничтожении модуля класса модуль класса использует события инициализировать и завершить события для выполнения всех необходимых операций. Когда объект встречается впервые после нового заявления, появляется событие инициализации, и когда последняя ссылка на объект выпускается, событие завершения немедленно повышается. Тем не менее, эти методы события могут быть вызваны непосредственно в любое время во время исполнения.
Поэтому я часто вижу такие примеры:
Класс Cnbruce 'объявляет класс с именем Cnbruce
| Ниже приведено цитируемое содержание: Частный Cnrose Private sub class_initialize cnrose = меня зовут Cnrose. Конец суб Private sub class_terminate () Конец суб Конечный класс |
Смотри, это инициализация.
Кроме того, в классе ASP есть методы пусть и получить. Например, добавьте между классом Cnbruce приведенного выше кода ... конечный класс:
| Ниже приведено цитируемое содержание: Общественная собственность получите Yname Yname = cnrose Конец собственности |
То есть стать:
Класс Cnbruce 'объявляет класс с именем Cnbruce
| Ниже приведено цитируемое содержание: Частный Cnrose Private sub class_initialize cnrose = меня зовут Cnrose. Конец суб Private sub class_terminate () Конец суб Общественная собственность получите Yname Yname = cnrose Конец собственности Конечный класс |
Так как извлечь значение, например,
| Ниже приведено цитируемое содержание: Установите AAA = новый CNBRUCE response.write aaa.yname |
Обратите внимание, что aaa.yname уже чувствует себя немного. AAA является объектом, определяемым как класс CNBRUCE. Окончательный вывод отображается как значение yname получить в объекте этого класса. Его значение значения - это значение переменной cnrose, и значение было инициализировано. Следовательно, окончательный результат - мое имя Cnrose.
Это Get, что напрямую извлекает внутреннюю часть уже инкапсулированного класса, так что насчет let? То есть внешние операции интерактивного доступа к классам. Например, теперь я применяю значение, определенное извне к классу. То есть сначала определите:
| Ниже приведено цитируемое содержание: Публичная собственность пусть Mname (NNN) cnrose = nnn Конец собственности |
Его значение очень просто. Значение параметра NNN будет назначено переменной Cnrose в соответствии с различными внешними значениями. Тогда программа комбинации OK, то есть содержание отображаемой переменной cnrose, не является инициализированным содержанием, а неопределенным значением, применяемым снаружи, путем let. Тогда как применить пусть.
aaa.mname = sdasdasd
Просто определите значение напрямую. Тогда теперь посмотрите на всю программу:
| Ниже приведено цитируемое содержание: <% Класс Cnbruce Частный Cnrose Private sub class_initialize cnrose = меня зовут Cnrose. Конец суб Общественная собственность получите Yname Yname = cnrose Конец собственности Публичная собственность пусть Mname (NNN) cnrose = nnn Конец собственности Конечный класс Установите AAA = новый CNBRUCE aaa.mname = хахахохо response.write aaa.yname %> |
Хотя значение AAA.MNAME определяется как хахахохо, согласно общественной собственности, пусть Mname (NNN), его значение - переменная Cnrose. Когда это выводит AAA.yname, согласно общественному собственности Get Yname, неудивительно, что значение результата состоит в том, чтобы. /
Что касается функциональных программ, они определяются как функция функции или подпрограмма в классе.
Таким образом, в целом, это всего лишь обертка функций, и ее легко писать и хорошо выглядеть при применении (прямое имя класса, метод, имя класса, атрибут -_-!), Но не ожидайте, что у него будут объектно-ориентированные сервисы мышления, такие как Java или .net.
Время ограничено, и начало и конец немного немного.
Поделиться: советы по использованию ASP для передачи данных формата HTML для Excel Узнайте, как создать страницу ASP для потоковой передачи данных HTML в электронную таблицу EXECK и отобразить электронную таблицу EXECK в IE. До сих пор есть несколько способов создания таблиц данных Excel с использованием технологии ASP, и вы также можете использовать серверные группы Excel 8.0 VBA