JQuery UI Вкладки Кэширование загадка - PullRequest
1 голос
/ 04 сентября 2010

Я работаю над веб-приложением для своего работодателя и использую некоторые jquery. Я довольно хорош в PHP, но потерял в jquery. Мой вопрос таков:

У меня есть рабочая страница вкладок, которая загружает огромную страницу PHP при первой загрузке. Мне нужно убедиться, что эта конкретная вкладка загружается только при вызове страницы (только в первый раз). У меня кешируется начальная вкладка, и если вы нажмете на другую вкладку, все в порядке. Проблема в том, что когда вы нажимаете на ссылку из вкладки, она перезагружает страницу PHP монстра. Вот код:

       $(document).ready(function() {
    $("#frame").hide();
    $("ASA").tabs({ cache: true });
    $("#tabs").tabs();
});


function CH(ids){
        $("#tabs").tabs("select" , "#CH");
        $('#CH').load('test.php?id='+ids);
        cache : true
}

function onIFrameLoad() {
   $("#loader").hide('slow');
     $('#frame').slideDown('slow');
 }

Функция CH - это то, где у меня проблемы (наверное). У меня есть тайник: правда там, но это был выстрел в темноте. Единственная вкладка, которую я хочу кэшировать (на данный момент) - это основная вкладка (ASA). Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2010

Хорошо ... так что это полный взлом / обходной путь, но у меня есть решение.Я хотел бы услышать ПРАВИЛЬНЫЙ способ сделать это, если кто-то может направить меня, но вот что я сделал:

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

В результате после загрузки отображается вкладка, а главная вкладка никогда не обновляется.

Опять же, я знаю, что этохак, если у вас есть лучший способ, пожалуйста, дайте мне знать.

0 голосов
/ 04 сентября 2010

Правильный синтаксис для использования кэша:

$( ".selector" ).tabs({ cache: true });

Однако это будет работать, только если каждая вкладка загружена удаленно (например, ajax). Нет смысла делать это, если вы используете исходную структуру HTML, заданную в документации, потому что все содержимое всех вкладок загружается изначально. Вы также не можете (насколько я могу судить) включить кэширование для отдельных вкладок.

Что нам действительно нужно увидеть, так это какая у вас HTML-структура для этого. Кроме того, селектор $("ASA").tabs({ cache: true });, вероятно, не будет работать, поскольку ASA не является допустимым элементом HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...