Chrome / Safari в некоторых случаях не вызывает выгрузку

Мы застряли в этой проблеме уже несколько дней, и они действительно нуждаются в помощи и были бы признательны. Мое требование состоит в том, что я хочу выполнить обратный вызов на стороне сервера, чтобы удалить некоторые объекты, когда пользователь уходит с нашей страницы, не нажимая кнопку выхода. По бизнес-причинам время ожидания сеанса ASP.NET должно быть установлено на очень высокое значение. Кроме того, я не хочу выводить всплывающее окно с предупреждением / диалоговым окном, чтобы заставить пользователя вернуться на страницу и щелкнуть «Выход».

Решение, к которому я пришел до сих пор, состоит в том, чтобы выполнить обратный вызов AJAX путем встраивания этого javascript в страницу.

window.onunload = pageleave;
     function pageleave() {                  
                  alert('test');
                  PageMethods.CheckLogout('abc','xyz',OnSucceed,OnFail);                  
      }     

Но вот проблема: По бизнес-причинам время ожидания сеанса ASP.NET должно быть установлено на очень высокое значение. Кроме того, я не хочу выводить всплывающее окно с предупреждением / диалоговым окном, чтобы заставить пользователя вернуться на страницу и щелкнуть «Выход».

Решение, к которому я пришел до сих пор, состоит в том, чтобы выполнить обратный вызов AJAX путем встраивания этого javascript в страницу.

window.onunload = pageleave;
     function pageleave() {                  
                  alert('test');
                  PageMethods.CheckLogout('abc','xyz',OnSucceed,OnFail);                  
      }     

Но вот проблема: По бизнес-причинам время ожидания сеанса ASP.NET должно быть установлено на очень высокое значение. Кроме того, я не хочу выводить всплывающее окно с предупреждением / диалоговым окном, чтобы заставить пользователя вернуться на страницу и щелкнуть «Выход».

Решение, к которому я пришел до сих пор, состоит в том, чтобы выполнить обратный вызов AJAX путем встраивания этого javascript в страницу.

window.onunload = pageleave;
     function pageleave() {                  
                  alert('test');
                  PageMethods.CheckLogout('abc','xyz',OnSucceed,OnFail);                  
      }     

Но вот проблема: Для IE и Firefox запускается выгрузка, отображается предупреждение, и я вижу обратный вызов на моей стороне C # во всех желаемых случаях

    a)  User closes browser 
    b)  User types in a new URL in the address bar 
    c)  User clicks on a link causing page to reload

Для Chrome и Safari случаи a и b работают нормально. Однако, когда пользователь щелкает ссылку, что вызывает перезагрузку моей aspx-страницы, мой боковой код C # не вызывается. Однако срабатывает предупреждение javasacript.

Я пытаюсь понять, как заставить Chrome / Safari вести себя как IE / Firefox.

Заранее спасибо за помощь,

Раджеш.

6
задан Rajesh 26 February 2011 в 02:11
поделиться