Инициализация содержимого удаленной вкладки jQuery при начальной загрузке страницы - PullRequest
3 голосов
/ 08 августа 2009

Я использую библиотеку вкладок jQuery для создания набора удаленных (т.е. загруженных ajax) вкладок.

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

Обычно это работает, предоставляя div в начальной загрузке страницы, который соответствует заголовку вкладки, но даже если это содержимое появляется сразу, как только я инициализирую вкладки, он выполняет запрос ajax IN ADDITION, который это расточительно и вызывает мерцание. Мой основной вопрос - как я могу заставить вкладки jQuery НЕ выполнять ajax-запрос для изначально выбранной вкладки и получать это содержимое как часть начальной загрузки страницы, при этом динамически загружая другие вкладки.

Сложность в том, что я не могу жестко закодировать идентификаторы / ссылки, для которых вкладка является "начальной", поскольку начальная вкладка будет меняться в зависимости от доступного содержимого.

Я уверен, что есть какой-то хакерский способ сделать это с помощью javascript, динамически переписывающего URL-адреса вкладок, прежде чем я инициализирую вкладки, но я ищу более чистое решение.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 25 ноября 2009

Лучший способ сделать это - использовать реализацию на стороне сервера, чтобы добавить начальный текст. В документации JQuery текст по умолчанию он не загружается через AJAX.

Я не совсем уверен, что вы делаете, но если это не ваш случай, тогда можно использовать простой логический «хак», например:

var initial=true;

Тогда в ваших вкладках код:

$('.selector').tabs({
   select: function(event, ui) { if(initial) { initial=false; return false; }
});

Это предотвратит выполнение вызова ajax в самый первый раз.

0 голосов
/ 29 марта 2010

Есть опция под названием «spinner», которая содержит текст, gif-анимацию или что-либо еще, что будет отображено.

$( ".selector" ).tabs( { spinner: 'Retrieving data...' } );
0 голосов
/ 25 сентября 2009

Используете ли вы конкретный элемент управления вкладки для этого? Это зависит от того, как реализованы ваши вкладки ...

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

Дайте мне больше подробностей, и я посмотрю, что я могу сделать!

...