2013-05-25 3 views
0

Некоторые динамические веб-страницы каким-то образом запоминают все его динамическое содержимое после выхода из страницы, а когда вы нажимаете кнопку «Назад» в браузере, старая страница выглядит точно так же, как вы ее оставили (включая динамическое содержимое), некоторые из них даже помнят, какая часть страницы, на которой вы фокусировались, перед отъездом и после возвращения свитков точно на часть страницы, на которую вы смотрели.Запомните содержимое страницы

У меня есть динамическая страница, в которой ее содержимое изменяется с помощью вызовов ajax, я хочу, чтобы при выходе пользователя и возвращении на страницу он выглядел так же, как и перед отъездом.

любая идея помогает ценится

+0

Какое динамическое содержимое? Как будто https://www.google.com/ig? –

+0

Существует php, caches, cookies, все это, чтобы запомнить вашу информацию. Ваша сессия также может не закончиться – Max

ответ

0

Я думаю, что некоторые браузер кэширует страницу на некоторое время, если вы штурман от него. Когда вы нажимаете «Назад», чтобы вернуться к странице, она показывает страницу в предыдущем состоянии без вызова сервера. Не очень надежно. Вы можете связать функцию с событием beforeunload и сохранить настройки состояния в файл cookie. Как параметры, формы inpurts и даже прокрутки позиции. Затем, когда пользователь вернется на страницу, проверьте файл cookie на эти настройки и установите страницу так, как она была.

0

Возвращающиеся пользователи могут хранить данные через SESSION (при условии, что он не истек) и базу данных. В зависимости от того, сколько данных вы планируете сохранять, вам может потребоваться только СЕССИЯ (я думаю, что есть проблемы с производительностью, ограничения на сумму, которую вы можете/должны хранить в СЕССИИ?)

Вот пример того, что у меня есть сделано в прошлом. (через jQuery + REST + JSON + PHP). Если вы найдете данные для этого пользователя, верните его и запишите соответственно.

<script> 

function PopulateDOMElementsWithUD(user){ /* Do stuff on the DOM with User Data */ } 

function CheckForUserData(){ 

    jQuery.getJSON('/user/getActiveData', function(user){ 

    //Data was found, use it 
    if(typeof(user) == 'object' && typeof(user.id) != 'undefined' && parseInt(user.id) > 0){ 
     PopulateDOMElementsWithUD(user); 
    }; 

    }); 
} 

$(document).ready(function(){ 

    CheckForUserData(); 

}); 
</script> 

Использование языка, таких как PHP, вы можете проверить данные сеанса пользователя, а затем получить остальные из базы данных:

<?php 
/* 
* Assuming you already have some sort of handler for incoming XMLHTTPREQUESTs, 
* and how that gets mapped to a method, moving along... 
*/ 
function getActiveData(){ 

    session_start(); 

    $user = array('id' => 0); 

    //assumes you only store the user's uid in the session 
    if(isset($_SESSION['uid'])){ 

     /* 
     * Look up the user from the database based on uid stored in the session 
     * This assumes that getUserDataById() also would return 
     * the default $user value (array('id' => 0)) if no user by that id is found 
     * in the database.   
     * I've also done something similar with try...catch and throw an exception 
     * if the user doesn't exist. 
     */ 

     $user = getUserDataById(intval($_SESSION['uid'])); 

    } 

    //There are plenty of frameworks out there that handle this stuff much more elegantly, but for sake of example, this would work. 
    print serialize($user); 
    die(); 

} 

Надежда, что помогает!

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