JQuery / AJAX общий вопрос об ограничениях и управлении кэшем - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь обновить интранет своей компании, используя jquery, ajax и php. Общий аспект сайта - это раскрывающееся меню вверху, загруженное в div, и раздел содержимого, где я загружаю страницы, нажимая на раскрывающееся меню. Проблема возникает, когда внутри контента я загружаю страницу, внутри которой есть меню вкладок, что я делаю, когда нажимаю на вкладку, это загружаю страницу структуры html с формой и заполняю ее вызовом POST.

Вопрос в том, правильно ли загружать данные при запросе, а не предварительно загружать их, и показывать их при вызове, как видно из множества примеров в Интернете? Работая по-своему, я кэширую много данных, поэтому, когда я нажимаю для подтверждения некоторых данных, я отправляю запрос нескольких данных вместо одного .. Как лучше всего работать с этими языками?

Я нахожу решение моей цели, предложенное Натаном I предзагрузкой все данные за один раз для всех форм, вот код:

$("#div_0").show();
        $("#scheda_eti > div").css({"background-color": "white", "color": "black","cursor":"hand"}); //tabs div
        $("#"+schemi[0]).css({"background-color": "red", "color": "white","cursor":"default"});
        for (var x=0; x<schemi.length; x++)
        {
            $("#div_"+x).load("./schemi/sch_"+schemi[x]+".php", {azione: "vedi"});
        }
        $.post("./php/global.php",
            {azione:"vedi", contratto: $("#suggest_hidden").val() },
            function(xml)
            {
                if ($("status", xml).text()=="1")
                {
                    $(xml).find("form").each(function()
                    {
                        var id_form=$(this).attr("id");
                        scorriDati(xml, "form_"+id_form);
                    });
                }
                else
                {
                    $("#scheda_ris").html("<img src='./img/validno.png' alt='errore'> <span style='color:red'><p>Attenzione!<br>codice non trovato!</p></span>");
                }
                $(xml).find("errore").each(function()
                {
                    $("#scheda_ris").append("<img src='./img/validno.png' alt='errore'> <span style='color:red'>"+$(this).text()+"<br></span>\n");
                });
            },'xml'
        );

Чтобы увидеть код, который вы можете посмотреть на мои предыдущие посты, связанные здесь: Question1 question2

спасибо заранее

чао ч

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

Я думаю Вкладки jQuery UI - это то, что вы ищете.Вам нужно включить в свой код jQuery UI , конечно, после jQuery.

Order:

<link rel='stylesheet' href='http://jquery-ui.googlecode.com/svn/tags/latest/themes/ui-lightness/jquery-ui.css' />
<script src='http://code.jquery.com/jquery-latest.min.js'></script>
<script src='http://jquery-ui.googlecode.com/svn/tags/latest/ui/minified/jquery-ui.min.js'></script>

Если вам не нравитсяUI lightness theme, вы можете выбрать любую из Theme Gallery .Например, если вам нужна тема UI darkness , просто замените ui-lightness именем темы в нижнем регистре и дефисами вместо пробелов.

1 голос
/ 01 февраля 2011

Полагаю, ответ на вопрос "правильно ли загружать данные при запросе вместо предварительной загрузки и показывать их при вызове?" такое "что пользователь предпочтет при переходе на другую вкладку?"

  1. без задержки (весь контент загружается при начальной загрузке страницы)
  2. короткая задержка (ajax поиск содержимого новой вкладки)
  3. полная загрузка страницы (полный туда-обратно, без ajax)

Во многих случаях вы можете получить хорошие результаты при первом или третьем подходе. Не злоупотребляйте Ajax.

Вот блог блога о злоупотреблении / правильном использовании Ajax ... Я честно не читал его и не обязательно одобряю все это, но это может помочь.

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