Что я должен сделать, если текущий сеанс ASP.NET является пустым?

jQuery имеет hasClass () функция, которая возвращает true, если какой-либо элемент в перенесенном наборе содержит указанный класс

if (!$(this).hasClass("selected")) {
    //do stuff
}

, Смотрят на мой пример использования

  • , Если Вы нависаете над отделением, это исчезает как нормальная скорость до 100%-й непрозрачности, если отделение не содержит 'выбранный' класс
  • , Если Вы толпитесь из отделения, это исчезает в низкой скорости до 30%-й непрозрачности, если отделение не содержит 'выбранный' класс
  • , Нажимающий кнопку, добавляет 'выбранный' класс к красному отделению. Исчезающие эффекты больше не работают над красным отделением

, Вот код для него





Sandbox










One div with a thumbs class
Another one with a thumbs class

РЕДАКТИРОВАНИЕ:

это - просто предположение, но Вы пробуете к , достигают чего-то вроде этого ?

  • Оба отделения запускаются в 30%-й непрозрачности
  • , Парение над отделением исчезает к 100%-й непрозрачности, колебание отходит назад к 30%-й непрозрачности. Исчезните эффекты только работают над элементами, которые не имеют 'выбранного' класса
  • , Нажимающего отделение, добавляет/удаляет 'выбранный' класс

, который Код jQuery здесь -

$(function() {

$('.thumbs').bind('click',function(e) { $(e.target).toggleClass('selected'); } );
$('.thumbs').hover(fadeItIn, fadeItOut);
$('.thumbs').css('opacity', 0.3);

});

function fadeItIn(e) {
if (!$(e.target).hasClass('selected')) 
 { 
    $(e.target).fadeTo('normal', 1.0); 
  } 
}

function fadeItOut(e) { 
  if (!$(e.target).hasClass('selected'))
  { 
    $(e.target).fadeTo('slow', 0.3); 
 } 
}

One div with a thumbs class
Another one with a thumbs class

118
задан Peter Mortensen 18 October 2015 в 15:08
поделиться

2 ответа

Да, объект сеанса может быть нулевым, но только в определенных обстоятельствах, с которыми вы редко будете сталкиваться:

Если у вас есть только код на страницах, вы не столкнетесь с этим. Большая часть моего кода ASP .NET использует сеанс без повторной проверки нулевого значения. Однако есть о чем подумать, если вы разрабатываете IHttpModule или иным образом упускаете более серьезные детали ASP .NET.

Edit

В ответ на комментарий: Доступно ли состояние сеанса, зависит от того, было ли выполнено событие AcquireRequestState для запроса. Здесь модуль состояния сеанса выполняет свою работу, считывая файл cookie сеанса и находя для вас подходящий набор переменных сеанса.

AcquireRequestState запускается перед передачей управления вашей странице. Так что, если вы вызываете со своей страницы другие функции, включая статические классы, все будет в порядке.

Если у вас есть классы, выполняющие логику инициализации во время запуска, например, в событии Application_Start или с помощью статического конструктора, состояние сеанса может быть недоступно. Все сводится к тому, есть ли текущий запрос и был ли запущен AcquireRequestState.

Кроме того, если клиент отключил файлы cookie, объект сеанса по-прежнему будет доступен, но при следующем запросе пользователь вернется с новым пустым сеансом. Это связано с тем, что клиенту дается пакет состояния сеанса, если у него его еще нет. Если клиент не передает cookie сеанса, у нас нет возможности идентифицировать клиента как того же самого, поэтому ему будет снова и снова передаваться новый сеанс.

152
ответ дан 24 November 2019 в 01:58
поделиться

Технические статьи по ASP.NET

РЕЗЮМЕ: В ASP.NET каждая веб-страница происходит от System.Web.UI.Page учебный класс. Класс Page объединяет экземпляр объекта HttpSession для данные сеанса. Класс Page предоставляет разные события и методы для настройка. В частности, OnInit используется для установки инициализировать состояние объекта Page. Если в запросе нет Сессионный cookie, новый Сессионный cookie будет выдано запрашивающей стороне.

РЕДАКТИРОВАТЬ:

Сессия: Концепция для начинающих

РЕЗЮМЕ: Сессия создается, когда пользователь отправляет первый запрос на сервер для любой страницы в веб-приложении, приложение создает сеанс и отправляет идентификатор сеанса обратно в пользователь с ответом и сохраняется на клиентской машине как небольшой куки. Так что в идеале машина, которая отключил куки, сеанс информация не будет сохранена ".

2
ответ дан 24 November 2019 в 01:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: