簡體   English   中英

使用 javascript 渲染 DIV

[英]Render DIV using javascript

我有一個頁面,其中包含使用 SQL 查找創建的大量表。 顯然,所有這些都需要時間來加載,每個表( <div>)默認為“最小化”(我使用 javascript 將其隱藏,直到單擊按鈕)。 但是這些表格仍然在后台呈現。 我真正想要的是一種在調用之前阻止所有 div 內容的方法。 我嘗試使用 php if 循環,它有效,但頁面需要刷新,所以放棄了。

請問有什么想法嗎? 我已經找了好多年了。

我同意安德烈的觀點。 如果您的頁面總是加載這些表格,那么構建整個頁面總是需要很長時間,隱藏表格不會增加您的處理時間。 您需要做的是使用 AJAX 請求在需要時返回您的表,然后在返回時填充您的 div。

我會 go 與 jQuery load方法。

基本示例:

$(document).ready(function() {
    $(".data").each(function(index) {
        var tableName = this.id;
        window.setTimeout(function() {
            LoadData(tableName);
        }, index * 1500);
    });
});

function LoadData(tableName) {
    var url = "load.php?table=" + tableName;
    var oDiv = $("#" + tableName);
    oDiv.html(url + " - To load real data, have here such code: <b>oDiv.load(url);</b><br />Good luck! :)");
}

這帶有這樣的 HTML:

<div class="data" id="cats_table"></div>
<div class="data" id="dogs_table"></div>
<div class="data" id="flowers_table"></div>

現場測試用例: http://jsfiddle.net/4H8Fa/

正如上面的評論所說,聽起來你正在尋找的東西需要 AJAX。 看看這個 Jquery 庫:

http://www.datatables.net/


更新(基於 OP 的評論):

由於您有自定義解決方案,因此不會有與您編寫的內容完全一致的“食譜”。 通常,您應該考慮使用 AJAX 和getJSON之類的庫來回叫您的服務器。 然后通過構建 TR/TD DOM 對象並將它們附加到表 object 來填充表。

我使用 $.ajax 和 load()

<html>
<body>

<div id="load-div" class="functions">
<span>Load</span>
<input type="submit" value="Go" id="load_basic" />
</div>

<div id="result"  class="functions">

</div>

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    $.ajaxSetup ({
        cache: false
    });
    var ajax_load = "<img class='loading' src='img/load.gif' alt='loading...' />";

//  load() functions
    var loadUrl = "page1.html";
    $("#load_basic").click(function(){
        $("#result").html(ajax_load).load(loadUrl);
    });


</script>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM