Вернемся к варианту пост#9 (потому что последний - действительно... последний)
Сообщение от ureech
|
Сделал так
$('select[name="mark"]').change(function() {
var cache =[];
var data = this.name + '=' + this.value;
if(cache[data]){
$('#brn').html(cache[data]);
//alert('11111111')
} else {
$.ajax({
type:"POST",
url:"/modules/mod_search_auto/ajax.php",
dataType:"html",
data: data,
success: function(data) {
$('#brn').html(data);
cache[data] = data;
// alert(cache[data])
}
})
}
});
Но не кеширует.
|
Чтобы кеш все помнил, его определение var cache =[]; нужно вынести на глобальный уровень (как в последнем варианте
)
Потом, мне кажется, вы запутались с переменными data:
data в строках 3 - 12 и в строках 13-16 - это разные переменные,
Первая - это значение, которое вы берете из html и передаете в запросе на сервер. (но не проверяли кеш на ее наличие и не запомнили в кеш ).
Вторая - определяется в строке 13 как параметр функции и представляет ответ сервера (что там - я, например, не знаю).
Поэтому строка 15
cache[data] = data;
- что это значит?
Эту переменную, во избежание путаницы, лучше обозвать по-другому.
С учетом вышеизложенного можете попробовать снова. В разных ваших вариантах есть отдельные правильные мысли, но они перемешаны с ошибками