Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.06.2016, 13:22
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Ajax в табах.
Всем привет.Делаю вывод галереи на аяксе в табах. Специфика вёрстки не позволяет сразу вывести фотки альбома в один из табов. Те, есть два таба.
<ul>
<li><a hrref=""></a>title альбома1</li>
<li><a hrref=""></a>title альбома2</li>
</ul>
<div id="content"></div>

При открытии главной страницы имею две ссылки. А нужно, что бы в
<div class="content"></div> были фотки альбома1. Сейчас фотки подгружаются аяксом в <div class="content"></div> при клике по ссылке.
Если я например подгружаю фотки до клика
$('#content').load('/photos/1060')
, то как мне потом в аяксе отменить этот лоад, или как то по другому. Не могу въехать. Пробовал подгружать в другой див и прятать в display:none, аякс не хочет работать.
Ответить с цитированием
  #2 (permalink)  
Старый 25.06.2016, 13:49
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Короче говоря, надо, чтобы при загрузке страницы сразу подгружались фотки в #content и при клике на ссылку альбом 1 потом не происходило дополнительного обращения к серверу (или где там они лежат)?
Ответить с цитированием
  #3 (permalink)  
Старый 25.06.2016, 14:15
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
$('#content').load('/photos/1060')
Не заботитесь вы о трафике клиента, ведь эту ссылку я могу никогда и не нажать. То есть оптимальное решение этой задачи -- подгружать фотки по требованию. А что у Вас конкретно не получается, науке не известно, код Вы ни серверный, ни клиентский не показываете.
Ответить с цитированием
  #4 (permalink)  
Старый 25.06.2016, 14:22
Аспирант
Посмотреть профиль Найти все сообщения от brexit2000
 
Регистрация: 25.06.2016
Сообщений: 10

destus,
этого еще не хватало. Какое ему дело до трафика клиента, он что за него платит? ему надо, чтобы работало быстро, наоборот надо выкачивать по максимуму, чтобы потом на медленных соединениях загрузка не тормозила
Ответить с цитированием
  #5 (permalink)  
Старый 25.06.2016, 14:29
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Сообщение от brexit2000 Посмотреть сообщение
destus,
этого еще не хватало. Какое ему дело до трафика клиента, он что за него платит?
Это неправильный подход, он за него конечно не платит, но если у пользователя медленный интернет/мобильное устройство , он может просто уйти с сайта не дождавшись загрузки.
Ответить с цитированием
  #6 (permalink)  
Старый 25.06.2016, 14:33
Аспирант
Посмотреть профиль Найти все сообщения от brexit2000
 
Регистрация: 25.06.2016
Сообщений: 10

Царь Леонид,
Это Вы о чем? Это наоборот ускорит загрузку.
Ответить с цитированием
  #7 (permalink)  
Старый 25.06.2016, 14:34
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Царь Леонид,
Да,примерно так.
destus,
Согласен, лоад можно повесить и на ссылку меню, что открывает главную.Сути не меняет.Код примерно такой.Точный остался на компе, а свет вырубили.
<ul class=" myTab">
  <li ><a href="#home" id="01" >title</a></li>
<li ><a href="#home" id="02" >title</a></li>
</ul>
<div class="tab-content">
  <div class="tab-pane"></div>
</div>


$('.myTab a').click(function (e) {
  e.preventDefault()
  var id = $(this).attr('id')
$.post('/photos/'+id, function(data) {
  $('.tab-pane').html(data); 
});
})
Ответить с цитированием
  #8 (permalink)  
Старый 25.06.2016, 14:37
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

[quote=ureech;420417]Царь Леонид,
Да,примерно так.
destus,

Если так, то подгружай фотки в массивы и делай проверку, если массив не пустой, значит не делать запрос а рендерить из массива.
Ответить с цитированием
  #9 (permalink)  
Старый 25.06.2016, 14:43
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Сообщение от brexit2000 Посмотреть сообщение
Царь Леонид,
Это Вы о чем? Это наоборот ускорит загрузку.
Это не ускорит загрузку. Картинки/скрипты и прочее блокируют отрисовку страницы. Вообще, об этом даже говорить не надо, это известная проблема, почитайте статьи на ХАбре, доклады гугл, яндекс, мейл ру, да и вообще, только ленивый не пнул эту тему
Ответить с цитированием
  #10 (permalink)  
Старый 25.06.2016, 14:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

ureech,
$(function() {
    var temp = {};
    $(".myTab a").click(function(e) {
        e.preventDefault();
        var id = $(this).attr("id");
        var data = temp[id];
        if (data) $(".tab-pane").html(data);
        else $.post("/photos/" + id, function(data) {
            temp[id] = data;
            $(".tab-pane").html(data)
        })
    })
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57