2013-07-18 2 views
0

Я застрял в ситуации, связанной с таймаутом сеанса() Пока пользователь все еще активен на веб-странице.Как разрешить ошибку тайм-аута сеанса со стороны клиента?

Что происходит с тем, что при нажатии на определенную ссылку на веб-странице пользователь перенаправляется на всплывающую страницу. Это всплывающее окно содержит форму Oracle (в основном апплет), и этот апплет встроен в HTML-страницу.

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

Я принял следующий подход для решения этой проблемы:

я добавил этот Jquery код ниже в этой всплывающей странице.

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script> 
var timer=0; 

function run(){   
    timer++;  

    if(timer == 2){ 
     $(document).bind('keyup mousemove',function(){   
      $(this).unbind('keyup mousemove');  
      $.ajax({ 
       url:  'https://bdqap1.acclaris.com/bensol/common/refreshsession.jsp', 
       cache: false, 
       data: 'html', 
       success: function(data,status) {      
       } 
      }); 
      timer=0;          
     }); 

    } 
}// run ends here 

setInterval(run,1000); 
</script> 

Этот код вызывает ссылку на сервере jboss на любом перемещении мыши или клавиатуры во всплывающем окне. Это должно поддерживать сеанс в активном режиме.

Но этот подход не работает, поскольку код jquery не способен обнаружить движение над частью апплета. JQuery не работает, а апплет находится в фокусе.

Я хотел решить эту проблему со стороны клиента. Есть ли лучший способ?

ответ

0

Вы связываете и перезаписываете обработчик событий каждые 2 секунды. Это может быть проще просто сделать запрос на AJAX каждые 30 секунд (или независимо от времени подходит для предотвращения времени сеанса из:.

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
<script> 

function run(){  
    $.ajax({ 
    url:  'https://bdqap1.acclaris.com/bensol/common/refreshsession.jsp', 
    cache: false, 
    data: 'html', 
    success: function(data,status) {} 
    }); 
}// run ends here 

setInterval(run,30000); 
</script> 
+0

Это не resolutiojn ofmy проблем я думаю, вы не поняли вопрос –

+0

. Тогда мой вопрос будет закрыт. –

+0

Вопрос в том, что событие JQuery не работает над частью апплета. Как я могу это решить? –

Смежные вопросы