Рекомендуется: ASP реализует автоматическую отправку электронных писем, если несуществующие веб-страницы Когда мы делаем веб-сайт, у нас обычно есть некоторые ошибки в действиях или дефектах посетителей на нашем веб-сайте, что приводит к посещению несуществующей страницы. В настоящее время появится сообщение об ошибке 404. Если вы восторженный посетитель, вы можете отправить вам электронное письмо, чтобы напомнить вам. В то время большинство людей
Любой, кто написал немного больший ASP, знает, что сеанс действительно полезен. Его можно использовать для записи переменных данных, принадлежащих пользователю, что является как безопасным, так и удобным. Но вы действительно знаете, как работает сеанс? Возможно, после того, как вы поймете, вы никогда не осмелитесь снова использовать этот объект любви-ненависти. Хотя метод перехода на альтернативы немного неприятен, после долгосрочных соображений я должен это сделать.
Во -первых, давайте поговорим о преимуществах сеанса, которые можно использовать для записи переменных данных, принадлежащих клиенту, и не исчезнут в диапазоне времени. Это действительно важная функция, особенно те, которые должны использоваться системами с членами. Например, учетная запись входа участника, время, статус и многие данные в реальном времени, записанные в этой записи, такие как система покупок, записывают продукты в корзине для покупок пользователя. Эта информация в частном порядке необходима каждому пользователю, и разработчик обычно использует записи сеанса для его обработки.
Тем не менее, сеанс в ASP состоит из файлов cookie, а сервер передает всю информацию, записанную в сеансе в браузер пользователя в форме файлов cookie. Обычно браузеры сохраняют эти куки. Всякий раз, когда пользователь нажимает на ссылку и снова подключает ее к серверу, браузер передаст эти файлы cookie обратно на сервер для обработки. Это принцип работы сеанса. Когда объем данных больше, его необходимо передавать и собирать. Он не только потребляет полосу пропускания линии, но и снижает свою производительность, потому что сервер должен тратить больше ресурсов на начальные действия, такие как онлайн -обработка и реконфигурирование памяти. Теперь вы можете подумать: «Я должен использовать эту функцию, поэтому я должен пожертвовать немного». Однако в этой статье рассказывается о сессии. С одной стороны, это научить всех использовать меньше; С другой стороны, есть, конечно, альтернативы. Тогда тот, кто выходит на сцену, является объектом приложения, который принадлежит Global.asa.
Приложение также хорошо для записи и обработки временных данных. Его способности и использование во всех аспектах такие же, как сеанс, но для сравнения, данные, которые они записывают, являются общедоступными, то есть переменным пространством, которым может поделиться любой пользователь. Приложение не похоже на сеанс, который не передает данные пользователю и не ждет в следующий раз, чтобы прочитать их обратно в Интернете. Он записывается непосредственно в памяти на сервере, и производительность намного быстрее, чем сеанс.
Поскольку объекты приложения являются общедоступными, первое, что должно быть сделано, это планировать общую область для каждого пользователя, чтобы у каждого пользователя была своя область для записи данных для достижения цели моделирования. Сейчас есть два способа сделать это:
1. Инициализируйте и распределяйте пространство памяти пользователя заранее, когда сервер активирован. Обычно, хотя этот подход занимает много ресурсов, как только сервер включается, он также экономит проблемы с распределением каждый раз, когда пользователь находится в Интернете. Однако есть ограничение. Использование этого метода должен ограничить максимальное количество людей. Поскольку он инициализируется, как только он активируется, мы можем оценить только установление определенного объема памяти, поэтому этот метод обычно используется в небольших программах, таких как чаты.
2. Этот метод следует считать более подходящим для крупных приложений. Он принимает метод динамического распределения. Только когда пользователь впервые выходит на сервер, ресурс будет выделен этому пользователю. Цель этих двух моделируемых решений сессии состоит в том, чтобы уменьшить потребление ресурсов сеанса, но в конце концов, оно все еще является незаменимым. Нам все еще нужно использовать небольшой сеанс, который может, по крайней мере, уменьшить много бремени на сервере.
■ Первый план
Сначала мы начинаем реализацию первого решения. Поскольку он должен инициализировать приложение при активации, мы, конечно, должны начать с Global.asa:
Инициализация была завершена, но как ее использовать? Нам просто нужно изменить информацию, хранящуюся с использованием сеанса, такой как учетная запись и время входа в систему, в созданный нами объект приложения, где пользователь входит в систему:
| Ниже приведено цитируемое содержание: 'Ищу неиспользуемое пространство Для i = 1 к приложению (ClientMax) Если приложение (user_status_ & i) = 0 тогда 'Пользовательский временный номер Session (index) = i 'блокировка Приложение приложение.lock 'Установлено в подержанное состояние Приложение (user_status_ & i) = 1 'Поместите в данные переменной Приложение (user_account_ & i) = учетная запись Application (user_logtime_ & i) = теперь () 'Разблокировано Application.unlock Выход для Конец, если Следующий |
Чтобы получить соответствующие данные переменной пользователя, это похоже на следующее:
Response.write (Application (user_account_ & session (index))
Вы можете обнаружить, что не имеете в виду не использовать сеанс? Тогда почему сеанс существует в исходном коде выше? Как упоминалось ранее, эта альтернатива не может полностью заменить сеанс. Браузер не всегда онлайн с сервером. Он будет отключен после прочтения страницы. Итак, как мы узнаем, будет ли один и тот же человек онлайн в следующий раз? В настоящее время мы должны полагаться на сессию. Мы даем пользователю набор чисел в реальном времени. Этот номер является номером пользователя в пространстве переменных в приложении. Вы можете представить, что в банке много сейфов. У вас есть ключ, и у ключа есть номер. Номер на ключе позволяет оператору привести вас к вашему сейфу. Этот метод имеет некоторые улучшения, но этого достаточно для небольших приложений.
■ Второй план
Что касается предыдущего решения, вы также можете подумать, что наш индивидуальный номер использует сеанс для записи. Говоря о нумерации, объект сеанса предоставляет метод «сеанса». Правильно, независимо от того, хотим ли мы его использовать или нет, сервер автоматически поможет каждому пользователю назначить номер, и этот номер не будет повторяться. Что касается этого числа, он получен с помощью Session.SessionId. Эта нумерация - это действие, которое сеанс определенно будет выполнять, поэтому мы можем использовать ее для замены программы нумерации, которую мы пишем сами, что сохраняет еще одно усилие и даже имеет большее расширение. Но в основном первое решение выше все еще полезно, например, чаты, которые ограничивают количество людей и других небольших приложений. Следующая вторая альтернатива для более крупных систем.
Если веб -сайт с сотнями, тысячами или даже десятками тысяч людей на веб -сайте каждую секунду, он определенно не будет работать, если использует предыдущее решение. Предположим, что вы установите верхний предел 10 000 человек, как только сервер активируется, он поможет вам вырезать 10 000 областей для подготовки к 10 000 пользователей. Если в регионе есть 5 переменных, одна переменная учитывает 32 байта (байт) и 10 000 учетных записей для более 320 000 К (320 МБ), и как только сервер будет активирован, он внесет столько мусора в память, и его производительность неизбежно будет снижена, прежде чем он пойдет на поле битвы. И хотя эти цифры очень мало, я думаю, что 512 МБ их собственного будет достаточно, приведенное выше число считается минимальным числом, и неизвестно, сколько ресурсов будет использовать сервер при настройке памяти, поэтому он будет только более и не ниже. Следовательно, решение состоит в том, чтобы динамически настроить пространство пользовательской переменной и вырезать часть области, когда пользователь онлайн с сервером, поэтому нет необходимости заранее настроить огромную память.
Второе решение относительно просто сделать. Пожалуйста, выбросьте все вещи в первом решении. Нам не нужно переходить на Global.asa, нам нужно только изменять логин пользователя и другие полезные места:
| Ниже приведено цитируемое содержание: Lock ApplicationApplication.lock 'Поместите переменные данные Application (user_account_ & session.sessionid) = учетная запись Application (user_logtime_ & session.sessionid) = now () 'разблокировать приложение. Unlock |
Чтобы получить соответствующие данные переменной пользователя, это похоже на следующее:
Response.write (Application (user_account_ & session.sessionid)))
В прошлом я читал много книг, в которых говорилось, что сессия было очень трудно съесть ресурсы, поэтому старайтесь не использовать их, но мне все еще нужно использовать их, когда они должны, и книги не учили более подходящему решению. Теперь, когда вы понимаете, как заменить сеанс, хорошо используйте его! Возможно, проблемы с эффективностью, которые всегда обеспокоены, могут быть значительно улучшены!
Поделиться: напишите более удобную всплывающую программу с ASP Пример ASP: Используйте ASP, чтобы написать более удобную всплывающую программу, чтобы помочь нам создать метод расследования, не связанный с аннемативами. Использование всплывающих окон для отображения вопросников считается наиболее удобным и быстрым способом сбора пользовательской информации. После того, как первая анкет