Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.01.2012, 04:47
Интересующийся
Отправить личное сообщение для neverdie Посмотреть профиль Найти все сообщения от neverdie
 
Регистрация: 01.08.2011
Сообщений: 12

ajax наложение скриптов один на другой
Здравствуйте! В процессе разработки одного сайта со сложными аякс подгрузками столкнулся с одной проблемой. Попытаюсь описать на примере архитектуры сайта наиболее упрощенно.
Меню
- пункт 1
- пункт 2
- пункт 3

Блок для загрузки аякс страницы 1
ссылка (alert(чего-нибудь))

Блок для загрузки аякс страницы 2

При кликах на пункты меню у меня подгружается аякс страница в блок 1. На этой загруженной странице есть кликабельные ссылки, которые загружают ещё страницу в блок 2.
Проблема вот в чем:
Если покликать на меню много раз, то аякс инициализиется несколько раз (допустим 2 раза кликнуть на пункт 1, а потом кликнуть на ссылку, то alert сработает 2 раза). По сути, аякс страницы налагаются друг на друга, кто сталкивался и как боролись ?
Ответить с цитированием
  #2 (permalink)  
Старый 07.01.2012, 09:46
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от neverdie
По сути, аякс страницы налагаются друг на друга, кто сталкивался и как боролись ?
не накладываются. браузеры позволяют делать несколько запросов одновременно.
выход -перед новым запросом обрывать предыдущий
Ответить с цитированием
  #3 (permalink)  
Старый 08.01.2012, 23:18
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

у каждого запроса свой ответ, они не накладываются.
а оборвать предыдущий можно гененированием уникального кода например, и проверка на его соответствие. это самый простой вариант
Ответить с цитированием
  #4 (permalink)  
Старый 13.01.2012, 01:49
Интересующийся
Отправить личное сообщение для neverdie Посмотреть профиль Найти все сообщения от neverdie
 
Регистрация: 01.08.2011
Сообщений: 12

Спасибо большое за ответы, я долго гуглил, но так и не нашел примеров кода, как сделать это для моего случая... Если кто поможет кодом или ссылкой на хорошую статью, буду очень признателен. Пробовал abort(), он просто не дает скрипту исполнится.
$.ajax({
type: "GET",
cache: false,
url: 'url',
data: {},
success: function(data){
})
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2012, 17:42
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

хмм. могу попробовать написать.
но в твоем варианте (jquerry, верно?) немного по-другому можно
сейчас напишу:


function math_rand(min,max) {
if( max ) {
return Math.floor(Math.random() * (max - min + 1)) + min;
} else {
return Math.floor(Math.random() * (min + 1));
}
}


это функция для генерирования рандом числа. оч удобная.
в твоем варианте с этой функцией будет так:

var fix_key = math_rand(10000000,9999999999);


попробовал, у самого не получилось.
могу сделать вот как: не выполнять новый запрос пока не обработается старый.
для нужного тебе варианта нужно побольше времени
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery - AJAX и файлы в другой папке (слэши) Physicist jQuery 1 21.07.2011 17:00
Как сделать: если один инпут заполнен, то в другой вводить нельзя? Fenec Events/DOM/Window 4 12.11.2010 19:32
Слежение за уникальностью загружаемых скриптов по ajax ekkl jQuery 8 18.02.2010 15:30
AJAX запрос на другой протокол Veresc AJAX и COMET 2 18.09.2009 18:47
не получается вложить один эффект в другой svip Библиотеки/Тулкиты/Фреймворки 1 30.03.2008 11:07