IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Использование JS от форума vBulletin (http://www.imho.ws/showthread.php?t=83631)

LAndrew2 11.04.2005 23:43

Использование JS от форума vBulletin
 
есть такая страничка:
Код HTML:

<html>
<script type="text/javascript" src="vbulletin_global.js"></script>
<script type="text/javascript" src="vbulletin_menu.js"></script>

<body>
<table class="tborder" cellpadding="6" cellspacing="1" border="0" width="200" align="center">
  <thead>
  <tr>
    <td class="alt2" colspan="3"><a style="float:right" href="#top" onclick="return toggle_collapse('movie_tech')"><img id="collapseimg_movie_tech" src="../images/buttons/collapse_tcat.gif" alt="" border="0" /></a><b>Информация</b></td>
  </tr>
  </thead>
    <tbody id="collapseobj_movie_tech" style="">
      <tr class="alt1">
        <td class="alt1" width="100%" align="left" valign="top">
                некий текст<br />
        </td>
      </tr>
    </tbody>
  </table>
</html>

во второй и третьей строках к ней "цепляются" наборы скриптов от форума vBulletina - цель сделать возможность скрывать/показывать отдельные таблицы на странице (так же, как сделано на этом форуме при нажатии двойной стрелки вверх/вниз
и это все работает... вопрос в другом... на этом форуме (да и вообще на всех других форумах на vBulletin) данные о свернутой/развернутой таблице сохраняются в cookies и при обновлении страницы показываются в том состоянии, в каком их оставил пользователь
у меня же (на странице, приведенной выше) данная таблица после обновления всегда оказывается видимой...
что надо дописать, чтобы это заработало?

хотел вначале вопрос поместить в тему с форумами, но потом решил, что здесь будет лучше... перенесите, плз, если все-таки не попал

Hubbitus 12.04.2005 03:26

Как я посмотрел, восстановление состояния при повторной загрузке там и не предсмотренно, странно, зачем тогда сохранять??? Или я плохо смотрел???

Вобщем собственно дописать такую функцию и несложно, добавить например в vbulletin_global.js после save_collapsed (можно и вдругое место, как в отдельный файл, так и прямо на страницу в теге <script>) следующую функцию:
Код:

function load_collapsed(){
        var collapsed = fetch_cookie("vbulletin_collapse");
        if (collapsed != null){
        collapsed = collapsed.split("\n");
                for (i in collapsed){
                toggle_collapse(collapsed[i]);
                }
        }
}

Ну и соответственно ее вызов при загрузке страницы, например, при использовании функции vBulletin_init (как это на форуме сделано), можно просто добавить строчку load_collapsed(); в функцию vBulletin_init, в самый конец, перед return true;, ну или полюбому вызвать ее отдельно...

LAndrew2 12.04.2005 22:21

спасибо! работает как надо!

Цитата:

Hubbitus:
Как я посмотрел, восстановление состояния при повторной загрузке там и не предсмотренно, странно, зачем тогда сохранять??? Или я плохо смотрел???
тем не менее, на всех форумах это работает и без этой функции... может эта функция на php есть на каждой странице (считывает куки и при генерации страницы сразу выставляет нужный статус)?

fuldon 13.04.2005 00:24

Вопрос немного не в тему, но как раз про js на vB.
Скажите, пожалуйста, как заставить браузер кэшировать файлы js?
Наприме, чтобы vbulletin_global.js и другие не постоянно загружались снова, а из кэша. :confused:

Hubbitus 13.04.2005 10:42

LAndrew2:
наздоровье.

Цитата:

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

miXei
Насколько я понимаю, эти файлы итак поумолчанию должны кешироваться.

fuldon 13.04.2005 11:57

Hubbitus
Должны, но похоже что не кешируются.
Вот даже на примере imho.ws смотрю.

Или я чего-то не поминаю или как-то настроить может можно на самом сервере или прописать в код js?

LAndrew2 13.04.2005 20:05

надо посмотреть, что стоит в настройках Апача, по идеи должно быть что-то типа этого (ну, или другое время):
Код:

ExpiresActive On
ExpiresDefault "now plus 120 min"

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

<META HTTP-EQUIV="pragma" CONTENT="nocache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

и, напоследок проверь настройки форума: vBulletin Options > vBulletin Options > Cookies and HTTP Header Options

fuldon 13.04.2005 20:22

LAndrew2
Интересно, буду смотреть. :)

Может кто-то уже знает рецепт как сделать для форума vB кеширование js, тогда напишите, пожалуйста.

LAndrew2 13.04.2005 20:23

обновил пост выше... попробуй начать с последнего :)


Часовой пояс GMT +4, время: 06:20.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.