powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Снова о кнопке "Назад" браузера
18 сообщений из 18, страница 1 из 1
Снова о кнопке "Назад" браузера
    #33996131
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В отдельных случаях, согласно логике Web-приложения, желательно делать предыдущее состояние браузера недоступным. То есть, чтобы по стрелке "Назад" пользователь не мог вернуться к предыдущей картинке.
У меня на форме в Студии 2005 стоит обычная кнопка, на которой написано "Конец работы". При нажатии на нее я закрываю ресурсы (БД и т.п.) и делаю эту кнопку Enabled=false. Однако по кнопке браузера пользователь может вернуться к предыдущему состоянию с живой кнопкой "Конец работы", что нежелательно.
Я уже вел разговор на эту тему, но ни одни из методов не дал результатов. Может быть за это время кто-нибудь научился это делать?

В частности, мне советовали писать:
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = -1;
Response.AddHeader("Cache-Control", "no-cache");

Но эти заклинания нисколько не помогают ни в автономе ни на сервере...
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #33996768
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно закрыть окошко.----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #33997109
Sobaka WWW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, совсем не т возможности указывать на то, что страницу надо постоянно заново загружать ?
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #33998282
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C...R...a...S...H, Вы написали:
«Можно закрыть окошко».

Я не умею закрывать из программы окошко пользователя.
Конечно, "хороший" пользователь послушно закроет окошко сам.
Речь идет о foolproof'e (защитных свойствах программы). Например, когда Вы садитесь в лифт, то до тех пор, пока дверь не захлопнется, лифт не поедет. Это пример простого инженерного foolproof'a.
При беспорядочном употреблении кнопки "Назад" возможны непредвиденные программные ситуации. И речь идет о том, что хорошо бы уметь такое дело блокировать. Например, "плохой" пользователь вместо того, чтобы закрыть окошко, сделает шаг назад и начнет нажимать кнопки на форме...
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #33998506
C...R...a...S...H
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
window.close(); - JavaScript который закрывает окошко, которое было открыто window.open.----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #33998617
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во первых самое простое осуществлять переход между страницами по javascript - document.location.replace("путь до следующей страницы") - в истории броузера текущая страница будет перезаписываться...
во вторых на стороне сервера можно переходить по страницам не Response.Redirect("la-la-la") а Server.Transfer("la-la-la")
в третьих создавай на сервере сессионную переменную (например "history_count") и при успешном переходе на другую страницу записывай это значение в hidden поле странички (увеличивая его на +1) - при отправке страницы на сервер проверяй - совпадает ли это значение с переменной сервера - если совпадает, всё ок если нет запрос был отправлен со страницы из хистори (т.к. там значение будет старое)
в четвёртых используй систему авторизации на сервере - авторизованных пользователей мобилизует наличие авторизации и (как правило) они не делают логофф а, просто закрывают броузер (типичное поведение ;)
в пятых как и писал C...R...a...S...H закрывай окно програмно по окончанию работы...
в шестых не гнушайся конструкций, предложенных ранее
Код: plaintext
1.
2.
3.
4.
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "no-cache");
Response.Expires = - 1 ;
Response.AddHeader("Cache-Control", "no-cache");
в 2005 студии эти же конструкции можно использовать не из кода а прямо на странице
Код: plaintext
<%@ OutputCache NoStore="true" Location="none" %>
и на последок - старайся строить логику приложения таким образом что бы избегать подобного рода поведения пользователей, или чтобы эти действия пользователя не влекли за собой непоправимых последствий на сервере - правда это из области исскуства программирования ;)
P.S. всё будет хорошо, я так думаю ;)
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34000472
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо тебе, vladgrig, за продуманное сообщение.

Давай начнем с 1-го пункта. По идее, штука document.location.replace("путь до следующей страницы") - вещь отличная, поскольку меняет "память" браузера, а это в данном случае - то что надо.
Но я ведь пишу на C# а не на javascript. Умею писать кусочки на нем только "с другой стороны", т.е. не на в *.aspx.cs а в *.aspx
а потребоваться перейти на другую страницу может мне потребоваться в любой момент.
Как ВСТАВИТЬ этот document.location.replace в контекст моей CSharp-программы?

.......
......
document.location.replace("another.aspx");
......
......
так просто не проходит. Что надо написать вверху (или еще где-то), чтобы такое получилось?
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34000584
Dkm_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>document.location.replace("another.aspx");

Это к jscript относится, C# тут ни при чём.

С другой стороны, если юзерь нажал на кнопку "Конец", вы в программе сделали какие-то действия, а впоследствии он снова на эту кнопку нажимает, то в обработчике, если к нему вызов дойдёт (он-то на сервере, может знать про факт завершения работы) можно сказать этому умнику всё, что о нём думаете.--
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34000790
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНо я ведь пишу на C# а не на javascript. Умею писать кусочки на нем только "с другой стороны", т.е. не на в *.aspx.cs а в *.aspx
а потребоваться перейти на другую страницу может мне потребоваться в любой момент.

често сказать, меня учили так - вот тебе удочка, а рыбу ловить мы за тебя не будем, сам налови сколько надо...
теперь по делу
Код: plaintext
1.
<input id="Button1" type="button" value="button" onclick="javascript:document.location.replace('public/Default.aspx')" />
вот такая кнопка позволит переходить от страницы к странице на стороне клиента с перезаписью текущей страницы... на счёт как это сделать на сервере - могу предположить что можно зарегистрировать клиентский скрипт в коде (сам я такое делал не раз, только по др. поводу - не буду много умничать, потому как конкретно по данному вопросу непробовал).
интересно посмотреть как ты переходишь от страницы к странице в любой момент ;) - вероятно в коде что то прописываешь - детальные рекомендации можно дать только после строк кода написанных тобой...
кстати, есть ещё один способ - создай страницу в ней фрейм и весь остальной ресурс грузи в этот фрейм - хистори будет помнить только страницу с фреймом, помоему ;)))
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34001372
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура!
Действительно, vladgrig, с волшебной кнопкой

<input id="Button1" type="button" value="button" onclick="javascript:document.location.replace('Default.aspx')" />

всё получается: браузер переходит на новую страницу, при этом кнопка "Назад" у него - неживая (недействующая). И значит неудачливый пользователь не совершит никакого вреда.

По этому поводу есть такие вопросы:
1) надо ли для этой кнопки Button1 написать еще и runat="server"?

2) можно ли такой эффект приспособить не к кнопке, а к "линку", типа LinkButton ? Потому что пузатые кнопки не всегда хорошо смотрятся.

3) можно ли сам эффект "document.location.replace" вообще не привязывать к кнопке (ведь команду Response.Redirect(...) я могу выдавать безо всякой кнопки).

В любом случае, здесь, наконец, я впервые увидел реальный эффект.
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34001466
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторвсё получается: браузер переходит на новую страницу, при этом кнопка "Назад" у него - неживая (недействующая). И значит неудачливый пользователь не совершит никакого вреда.

всё не так сказочно, как хотелось бы - тока что посмотрел - в хистори всё равно появляется и новая и старая страницы - извечная проблема - правильно говорят, что выходит за пределы локального компа (в сеть) особой тайны для окружающих не представляет ;)
ссылка - здесь можешь почитать кое что о кнопках броузера - мне самому чего то заморачиваться на этом неохота :(
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34001605
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, vladgrig, за содержательную ссылку.
Прости, что втягиваю тебя в бодяжную тему...
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34001617
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для интересующихся указываю хороший вариант ответа на свой вопрос:

<a href="javascript:window.location.replace('another.aspx')" style="font-weight:bold">ВСЕ на Ф О Р У М</a>

При нажатии на эту ссылку пользователь уйдет на ваш форум, при этом стрелка "Назад" браузера будет неживой. Мосты сожжены...
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34001629
Dkm_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вот так написалlink=new HyperLink();
link.NavigateUrl = ...;
link.NavigateUrl = "javascript:window.location.replace('"+link.NavigateUrl+"');";

Вроде, фурычит
--
Абыpвалг! - сказал Linux после pyсификации
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34002660
hilsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо Вам, Dkm_S !

Ваше указание на использование HyperLink решило одним махом большинство моих проблем по поводу навигации на сайте.

Вот работающий пример для интересующихся:

HyperLink link= new HyperLink();
link.NavigateUrl = "Default2.aspx";
link.NavigateUrl = "javascript:window.location.replace('"+link.NavigateUrl+"');";

Великолепно! Можно уйти куда надо ("сжигая мосты") без Redirect и даже безо всяких искусственных кнопок!
Я попробую устроить такую "передачу мяча" в ссылках на GridView...
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34002737
У меня на форме в Студии 2005 стоит обычная кнопка, на которой написано "Конец работы". При нажатии на нее я закрываю ресурсы (БД и т.п.) и делаю эту кнопку Enabled=false.

Вообше-то ресурсы надо закрывать в крайнем случае перед отправкой страницы клиенту, а еще лучше, стянул данные и закрыл соеденение и обязательно в finally.

http://www.gotdotnet.ru/DOTNET/FAQ/ASPNET/117810.aspxВсе должно быть просто, очень просто, настолько просто - насколько это возможно!
 Мой блог Возможно на твой вопрос уже есть ответ? FAQ
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34002968
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to hilsoft
замечательный ты человек ;) так приятно тебя радовать и ... огорчать :(
Код: plaintext
1.
2.
3.
HyperLink link= new HyperLink();
link.NavigateUrl = "Default2.aspx";
link.NavigateUrl = "javascript:window.location.replace('"+link.NavigateUrl+"');";
в данном случае ты просто один раз присваиваешь значение а второй раз его же перезаписываешь - зачем?
пиши сразу с явой без второй строчки ;)
+ ИМХО большого смысла в создании серверного контрола я не вижу - всё одно - задействовано будет только клиентское событие ;) + после перехода на новую страницу загляни в хистори броузера - там будут все те страницы, которые ты посетил - одна за одной вот такие пирожки...
...
Рейтинг: 0 / 0
Снова о кнопке "Назад" браузера
    #34003328
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ попробую устроить такую "передачу мяча" в ссылках на GridView...
Код: plaintext
1.
2.
3.
4.
5.
<asp:TemplateField>
       <ItemTemplate>
             <a href="javascript:document.location.replace('<%# Eval ("Колонка таблицы БД с нужным адресом") %>');"><%# Eval ("Колонка таблицы БД с нужным наименованием для адреса") %></a>
       </ItemTemplate>
</asp:TemplateField>
вот такая колонка может быть вставлена в GV...
P.S. скучал :( (на работе ;)
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Снова о кнопке "Назад" браузера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]