Re: AJAX проблема, возможно из за кеширования браузера
От: Lloyd Россия  
Дата: 18.04.09 00:48
Оценка: +1
Здравствуйте, Pool, Вы писали:

P>При obBlur для текстБокса вызывается checkLogin(). Создан хэндлер для проверки существования пользователя IsLoginExistHandler.ashx. После нажатия на кнопку создания пользователя остаёмся на этой же страничке, пользователь помещается в базу данных. Проблема в следующем: если ввести логин только что созданного пользователя, то хэндлер не запускается( не знаю как проверить происходит ли событие onBlur), и показывается, что пользователя с таким логином нет, как было до его создания. После выключения эксплорера и последующем запуске приложения показывается что логин занят.


Если возникают такого рода вопосы, запустите Fiddler и посмотрите, что ходит между браузером и сервером.
AJAX проблема, возможно из за кеширования браузера
От: Pool Россия  
Дата: 16.04.09 17:22
Оценка:
Пишу код на ASP.NET. Есть страничка на которой создаётся новый пользователь, вводится логин и пароль. На аяксе проверяю существует ли пользователь с таким логином.

При obBlur для текстБокса вызывается checkLogin(). Создан хэндлер для проверки существования пользователя IsLoginExistHandler.ashx. После нажатия на кнопку создания пользователя остаёмся на этой же страничке, пользователь помещается в базу данных. Проблема в следующем: если ввести логин только что созданного пользователя, то хэндлер не запускается( не знаю как проверить происходит ли событие onBlur), и показывается, что пользователя с таким логином нет, как было до его создания. После выключения эксплорера и последующем запуске приложения показывается что логин занят.

Есть ещё проблема, мне кажется, взаимосвязанная с вышеуказанной. Пользователь делает login, переход на страницу, куда доступ есть только у него,копируем адресную строку браузера,logout. Вводим скопированную строку и вуаля — мы на странице куда доступа у нас сейчас нет, но при попытке что либо сделать на ней — получаем ошибку. Срабатывает только с уже посещёнными страницами, пока не выключили браузер.

Есть мысль что это из за кеширования, но хочется услышать мысли грамотных людей.

Ниже указан код на javaScript.
<script type="text/javascript" language="javascript">
        var request = null;
        
        function checkLogin()
        {
            var login = document.getElementById("ctl00_userDataContent_TextBoxLogin").value;
            if(login!=null)
            {
                createRequest ();
                
                request.onreadystatechange = handleStateChange;
                request.open("GET", "IsLoginExistHandler.ashx?userLogin="+login, true);
                request.send(null);
            }
        }
        
        function handleStateChange()
        {
            if(request.readyState == 4) 
            {   
                var buttonCreateUser = document.getElementById("ctl00_userDataContent_ButtonCreateUser");
                var isLoginFree = document.getElementById("ctl00_userDataContent_IsLoginFree");
                
                if(request.responseText=="false")
                {
                    isLoginFree.style.color="Green";
                    isLoginFree.innerHTML = "Логин свободен";
                    
                    buttonCreateUser.disabled=false;
                }
                else
                {
                    isLoginFree.style.color="Red";
                    isLoginFree.innerHTML = "Логин уже используется";
                }
            }
        }
        function createRequest(){//Создаю request}
</script>


17.04.09 21:39: Перенесено модератором из 'Прочее' — Кодт
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.