天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

asp.net 生成靜態頁時的進度條顯示

ASP.NET如何生成靜態頁,請參考下面的文章:
http://www.jb51.NET/article/18175.htm
而我們用模擬的話,只需要讓線程延遲執行就可以了。比如下面的代碼:
復制代碼 代碼如下:
for (int i = 0; i < 10; i++)
{
DateTime startTime = DateTime.Now;
Response.Write(i + "-------------執行時間:" + startTime.ToString()+"<br />");
Thread.Sleep(1000);
}

顯示結果:


時間都不一樣,如果沒有讓線程延遲,那么這里的時間都是一樣的。而我們需要做的僅僅是:
復制代碼 代碼如下:
Thread.Sleep(1000);

別忘記了引入命名空間:
復制代碼 代碼如下:
using System.Threading;

而且輸出的時候是一次性就全部輸出的,并不是每隔一秒就輸出一行(是可以實現的,后面會講到)。如果按那樣寫每隔一秒就輸出一行該有多好啊。根據這個原理,如果只需要制作生成靜態時表明正在生成的過程,而不需要進度顯示,那么可以這樣:
復制代碼 代碼如下:
<ASP:Button ID="btnOk" runat="server" onclick="btnOk_Click" Text="生成靜態的進度條" OnClientClick="createload()" />

在Button按鈕的添加一個
復制代碼 代碼如下:
OnClientClick="createload()"

表明在按下按鈕的同時觸發客戶端事件,而客戶端就是創建一個等待中的div。效果如下:

creatload函數代碼如下:
復制代碼 代碼如下:
function createload(){
var loaddiv = document.createElement("div");
loaddiv.style.width = "200px";
loaddiv.style.height = "100px";
loaddiv.style.border = "1px solid #000000";
loaddiv.style.fontSize = "12px";
loaddiv.style.lineHeight = "100px";
loaddiv.style.backgroundColor = "#cccccc";
loaddiv.style.textAlign = "center";
loaddiv.innerHTML = "請稍候...";
document.body.appendChild(loaddiv);
}

執行完后這個div就自動消失了。
有了上面的鋪墊,現在開始進入正題,我們肯定是要實現每隔一秒就輸出一行的這種效果,而這其實很容易實現,只要讓頁面不緩沖就可以了再配合線程延遲就可以做到了。在Page中關閉緩沖區:
Buffer="false"
接下來,我們只要找一個進度條效果,再統計出需要生成靜態頁的文章總數,根據當前生成的文章為第幾條記錄,算出已經執行到總數的百分之幾。再實時調用一次js函數實現進度塊的變化,就OK了。
關于進度條,大家可以上網隨便找一個,我用了這里的一個進度條效果,因為簡單。http://www.jb51.NET/article/18177.htm
當然,這個進度條并不適合我們現在的具體使用,關鍵部分的js需要修改如下:
復制代碼 代碼如下:
//i為當前執行到的記錄,count為總數
//比如總共需要生成的靜態數為100,那么現在執行到5%,那么進度條塊進到5%的地方
function loadBar(i,count){
var a = parseFloat(i*100/count);
$("bar").style.width = a + "%";

if($("bar").style.width == "100%"){
$("bar").innerHTML = "完成";
}else{
$("bar").innerHTML = a + "%";
}
}

以下則是關鍵的c#后臺代碼的關鍵,按照上面這個函數,我們主要根據執行到的記錄,輸出類似以下的代碼:
復制代碼 代碼如下:
< script>loadBar(1,10);</script><script>loadBar(2,10);</script><script>loadBar(3,10);</script><script>loadBar(4,10);</script><script>loadBar(5,10);</script><script>loadBar(6,10);</script><script>loadBar(7,10);</script><script>loadBar(8,10);</script><script>loadBar(9,10);</script><script>loadBar(10,10);</script>

按照這樣的輸出,輸出這些字符必須在js,css,以及相關html代碼之后才可以輸出,否則在頭部就輸出的話,肯定不行。因為前面都沒有這個函數,就執行到這個函數。(你想用Literal控件去控制其輸出位置?你可以自己試下,有什么結果?)所以,索性我們把相關進度條的代碼一次性輸出,可以把其做成一個html文件,這個也是在網上看到一篇文章的時候的做法。名為bar.htm
復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>進度條</title>
<script language="Javascript" type="text/Javascript">
function $(obj){
return document.getElementById(obj);
}
//i為當前執行到的記錄,count為總數
//比如總共需要生成的靜態數為100,那么現在執行到5%,那么進度條塊進到5%的地方
function loadBar(i,count){
var a = parseFloat(i*100/count);
$("bar").style.width = a + "%";

if($("bar").style.width == "100%"){
$("bar").innerHTML = "完成";
}else{
$("bar").innerHTML = a + "%";
}

}
</script>
<style type="text/css">
body{
text-align:center;
font-size:12px;
}
.graph{
width:450px;
border:1px solid #F8B3D0;
height:25px;
margin:0 auto;
}
#bar{
display:block;
background:#FFE7F4;
float:left;
height:100%;
text-align:center;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div class="graph">
<strong id="bar" style="width:1%;"></strong>
</div>
</div>

</form>

</body>
</html>

而我們用來模擬的代碼如下:
復制代碼 代碼如下:
for (int i = 0; i < 10; i++)
{
if (i == 0)
{
string strFileName = FileObj.ReadFile(Server.MapPath("bar.htm"));
Response.Write(strFileName);
}
Response.Write("<script>loadBar(" + (i + 1) + ",10);</script>");

Thread.Sleep(1000);
}

FileObj.ReadFile是讀取這個htm文件,這個函數及其相關文件操作類,大家可以在這篇文章中得到!http://www.jb51.NET/article/15125.htm加上條件語句
復制代碼 代碼如下:
i==0

是因為bar.htm在讀取出來之后,只需要輸出一次就可以了。最終效果如下:

但是其是動態的哦,而只需要把模擬的代碼換成生成靜態時的相關函數代碼,當然也可以是其它。當然也可以采用ajax的方法,有空再謝謝這方面實現的文章。

AspNet技術asp.net 生成靜態頁時的進度條顯示,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲人成网站在线播放 | 99re2.久久热最新地址 | 青青青青久久久久国产的 | 国精产品一区一区三区有限在线 | 香蕉水蜜桃牛奶涩涩 | 伦理 电影在线观看百度影音 | 久久水蜜桃亚洲AV无码精品偷窥 | 午夜福利电影网站鲁片大全 | 国产一卡 二卡三卡四卡无卡乱码视频 | 久久精品无码一区二区日韩av | 国产成人精品久久久久婷婷 | 国产乱妇乱子在线播视频播放网站 | 一级毛片免费下载 | AV无码国产精品午夜A片麻豆 | 亚洲第一成年网站视频 | 茎身铃口调教 | 翁止熄痒禁伦短文合集免费视频 | 扒开屁股眼往里面夹东西 | 最新 国产 精品 精品 视频 | 国产午夜视频 | 国产精品一区二区欧美视频 | 精品免费久久久久久成人影院 | 99热在线观看精品 | 久久内在线视频精品mp4 | 熟妇的味道HD中文字幕 | 9797在线看片亚洲精品 | 国产精品久久久久久人妻精品流 | 国产视频这里只有精品 | 不卡人妻无码AV中文系列APP | 欧美亚洲另类热图 | 亚洲日本欧美国产在线视 | 99婷婷久久精品国产一区二区 | 1000视频在线播放 | 人妻无码AV中文系统久久免费 | 东京热影院 | 日本人吃奶玩奶虐乳 | 亚洲精品在线播放视频 | 天美传媒果冻传媒入口视频 | 日本高清加勒比 | 韩国甜性涩爱 | 在线视频 日韩视频二区 |