【问题标题】:Delay in loading the page when creating tabs using jquery ui使用jquery ui创建选项卡时加载页面延迟
【发布时间】:2013-03-25 10:31:16
【问题描述】:

在我的页面中,我有一些选项卡...但是根据要求,选项卡显示在靠近中间的某个位置...因此,选项卡上方的部分加载速度很快,需要一些时间加载包含选项卡的部分...

加载主页面时,标签内的所有页面也都加载了...所以需要一些时间...如何避免这种情况?...

我的代码:

<div class="ui-tabs" id="tabs" style="width: 97%;display:none;">
                    <ul class="ui-tabs-nav">
                        <li id="planDetails-tab"><a id="hrefPlanDetailsid" accesskey="p" href="#divPlanDetailsTab" class="planTabHeader">&nbsp;Plan Details</a></li>
                        <li id="testPlan-tab"><a id="hrefTestPlanid" accesskey="t" href="#divTestPlanTab" class="planTabHeader">&nbsp;&nbsp;Test Plan&nbsp;&nbsp;&nbsp;</a></li>                        
                        <li id="serviceArea-tab"><a href="#divServiceAreaTab" accesskey="s" class="planTabHeader">Service Area</a></li>
                        <li id="rates-tab"><a href="#divRatesTab" accesskey="r" class="planTabHeader">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rates&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a></li>
                        <li id="benefits-tab"><a href="#divBenefitsTab" accesskey="b" class="planTabHeader">&nbsp;&nbsp;&nbsp;&nbsp;Benefits&nbsp;&nbsp;&nbsp;</a></li>
                        <li id="network-tab"><a href="#divNetworkEcpTab" accesskey="n" class="planTabHeader">Network ECP</a></li>
                        <li id="historical-tab"><a href="#divHistoricalTab" accesskey="h" class="planTabHeader">&nbsp;&nbsp;Historical&nbsp;&nbsp;&nbsp;</a></li>
                        <li id="directory-tab"><a href="#divDirectoryTab" accesskey="d" class="planTabHeader">&nbsp;&nbsp;&nbsp;Directory&nbsp;&nbsp;</a></li>
                    </ul>

                    <div id="divPlanDetailsTab" style="width: 100%;">
                        <fieldset>
                            <s:include value="PlanDetail.jsp" />
                        </fieldset>
                    </div>
                    <div id="divTestPlanTab" style="width: 100%;">
                        <fieldset>
                            <s:include value="TestPlan.jsp" />
                        </fieldset>
                    </div>                  
                    <div id="divServiceAreaTab"
                        class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"  style="width: 100%;">
                        <fieldset>
                        <s:include value="PlanServiceArea.jsp" />
                        </fieldset>
                    </div>                  

                    <div id="divRatesTab"
                    class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"  style="width: 100%;">
                        <fieldset>
                        <s:include value="Rates.jsp" />
                        </fieldset>
                    </div>

                    <div id="divBenefitsTab" class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"  style="width: 100%;">
                        <fieldset>
                        <s:include value="PlanBenefits.jsp" />
                        </fieldset>
                    </div>

                    <div id="divNetworkEcpTab"
                    class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"  style="width: 100%;">
                        <fieldset>
                        <s:include value="NetworkECP.jsp" />
                        </fieldset>
                    </div>

                    <div id="divHistoricalTab" class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"  style="width: 100%;">
                    <fieldset>
                        <s:include value="PlanHistorical.jsp" />
                        </fieldset>
                    </div>
                    <div id="divDirectoryTab"
                    class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active"  style="width: 100%;">
                        <fieldset>
                            <s:include value="ProviderDirectory.jsp" />
                        </fieldset>
                    </div>
            </div>

js文件:

$(function() {
            $tabs = $("#tabs").tabs();
            $tabs.css('display','block');

            //Initially hide Test Plan tab
            $('ul li#testPlan-tab').hide();
            $('#hrefTestPlanid').hide();
            $tabs.tabs({
                active : function(event, ui) {
                }
            });
        });

【问题讨论】:

    标签: javascript ajax jquery-ui tabs jquery-tabs


    【解决方案1】:

    使用 AJAX 方法简单地使用内容加载:http://jqueryui.com/tabs/#ajax

    这样,您不会加载大量可能永远不会显示的文本或元素

    创建一个目录“ajax”,将标签的代码移动到特定文件中,并像这样定义标签:

    <ul class="ui-tabs-nav">
        <li id="planDetails-tab"><a href="ajax/divPlanDetailsTab.php" id="hrefPlanDetailsid" accesskey="p" class="planTabHeader">&nbsp;Plan Details</a>
        </li>
        <li id="testPlan-tab"><a href="ajax/divTestPlanTab.php" id="hrefTestPlanid" accesskey="t" class="planTabHeader">&nbsp;&nbsp;Test Plan&nbsp;&nbsp;&nbsp;</a>
        </li>
        ...
    </ul>
    
      <script>
      $(function() {
        $( "#tabs" ).tabs({
          beforeLoad: function( event, ui ) {
    
              ui.panel.html("Loading in progress...");
    
              ui.jqXHR.error(function() {
              ui.panel.html(
                "Couldn't load this tab. We'll try to fix this as soon as possible. " +
                "If this wouldn't be a demo." );
            });
          }
        });
      });
      </script>
    

    【讨论】:

    • 我在示例中添加了加载文本。
    猜你喜欢
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多