Поскольку этот вопрос изначально был задан, библиотека Гуавы Google теперь включает мощный и гибкий кеш. Я бы рекомендовал использовать это.
ASPX:
<input type="hidden" id="_ispostback" value="<%=Page.IsPostBack.ToString()%>" />
Клиентский скрипт:
function isPostBack() { //function to check if page is a postback-ed one
return document.getElementById('_ispostback').value == 'True';
}
PS: Я не тестировал его, но я делал нечто подобное раньше, и он работает.
Это - простой способ JS определить состояние IsPostBack, что я просто получил работу в Теле моей страницы ASPX; должен был вызвать PostBack во время PageLoad для проекта.
<script type="text/javascript">
if ('False' === '<%= Page.IsPostBack.ToString()%>')
{
__doPostBack();
}
</script>
Вы можете отслеживать обратную передачу только в том случае, если вы используете запросы AJAX или имеете какое-то скрытое поле, которое javascript читает при загрузке страницы. В противном случае страница создается заново и все данные POST теряются; как и следовало ожидать и надеяться.
Если вы хотите проверить, будет ли текущая страница обратной передачей, если пользователь нажимает кнопку отправки, вы можете проверить наличие ViewState:
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="xxxxx" />
Вы можете использовать что-то вроде document.getElementById ("__ VIEWSTATE")
или эквивалент jQuery.
Однако, если вы хотите узнать, была ли текущая страница сгенерирована в ответ на обратную передачу, вам необходимо вставить эти данные на страницу сначала на стороне сервера.
Например:
function isPostBack() {
return <%= Page.IsPostBack %>;
}
См. следующее:
<script type="text/javascript">
function invokeMeMaster() {
var chkPostBack = '<%= Page.IsPostBack ? "true" : "false" %>';
if (chkPostBack == 'false') {
alert('Only the first time');
}
}
window.onload = function() { invokeMeMaster(); };
</script>
]