Как сохранить значения статических переменных в функциях JavaScript при обратной передаче?

StackOverflow https://stackoverflow.com/questions/2146917

Вопрос

У меня есть этот образец ниже:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">

    <script type="text/javascript">
function test(){

if (test.initialized=='undefined'){
    test.initialized = 'true';
    }

alert(test.initialized);

};
    </script>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <asp:Button ID="btnPostBack" runat="server" Text="Post back" OnClientClick="test()" />
</asp:Content>

Когда я нажимаю кнопку обратной передачи на странице, я обнаружил, что инициализированная переменная, которая определена в самой функции, теряет свое значение и снова становится «неопределенной».

Можно ли сохранить эти статические значения после того, как они определены, и сделать их незатронутыми любыми ответными сообщениями на странице?

Это было полезно?

Решение

Вы можете добавить их в виде строки запроса или сохранить в файле cookie.

Другие советы

Возможно, вы хотите сделать что-то подобное.Я также думаю, что вы путаете тестовую функцию с тестовым объектом.

var initialized = false;
function test(){
    if ( !initialized){
        initialized = true;
    }
};
            alert(initialized); // false
            test();
            alert(initialized); //true

javascript будет повторно выполняться при обратной передаче при перезагрузке страницы (если вы не используете панели обновления).

чтобы сохранить значение на стороне клиента, запишите значение в скрытое поле asp с помощью JS и не отображайте javascript, если IsPostBack имеет значение true, чтобы оно не перезаписывалось при обратной передаче

Я думаю, что использование частичной обратной отправки — это тоже способ.

Если это невозможно, то только с помощью Java-скрипта. Я думаю, что файлы cookie могут быть другим способом, если они не отключены пользователем.

Я считаю, что лучший способ — создать страницу таким образом, чтобы мне не нужно было ее хранить :)

Вы могли бы добавить скрытое поле и установить его значение?Я думаю, что таким образом оно сохранится в состоянии просмотра, и вы сможете загрузить его значение обратно в свою переменную примерно так:

var p = '<%=blah.Text%>';

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top