jquery / ajax关于限制和缓存管理的一般问题

时间:2011-02-01 17:13:31

标签: php jquery ajax

我正在尝试使用jquery,ajax和php更新我的公司内部网。网站的一般方面是顶部的下拉菜单,加载到div和内容div中,我在页面上单击下拉菜单。当内部内容我加载一个内部有一个标签菜单的页面时出现问题,单击标签时我所做的是加载带有表单的html结构页面并通过POST调用填充它。

问题是它是否在请求时正确加载数据而不是预先加载它并在调用时显示它们,如网络中的大量示例所示?以我的方式工作我得到了很多缓存的数据,所以当我点击确认一些数据时,我发送请求几个数据而不是一个... 使用这种语言的最佳方式是什么?

我发现我的目标解决方案由Nathan 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 个答案:

答案 0 :(得分:2)

我认为jQuery UI Tabs正是您所寻找的。您需要在代码中包含jQuery UI,当然 jQuery。

订单:

<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亮度主题,可以从Theme Gallery中选择任意一种。例如,如果您想要 UI darkness 主题,只需将ui-lightness替换为小写的主题名称,并使用连字符而不是空格。

答案 1 :(得分:1)

我想答案是“在请求时是否正确加载数据而不是预先加载它并在调用时显示它们?”是“切换到不同标签时用户会选择哪个?”

  1. 没有延迟(在初始页面加载期间加载的所有内容)
  2. 短延迟(新标签内容的ajax查找)
  3. 整页加载(完整的往返,不需要ajax)
  4. 在许多情况下,您可以通过第一种或第三种方法获得良好的结果。不要过度使用Ajax。

    这里是a blog rant about overuse/correct use of Ajax ...我没有老实说过它并不一定认可整个事情,但它可能会有所帮助。