亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

ASP 快速執行動態網頁

2024-05-04 11:08:59
字體:
來源:轉載
供稿:網友
ASP 能快速執行你的動態網頁,但你還可以通過緊縮代碼和數據庫連接以使它們執行更快。
 
 
 
這是一篇關于怎樣精簡代碼和Asp 特征以獲得最快執行速度的詳細文章。對于一個急燥的用戶來說,任何在按下用戶按鈕到結果出現在它們的屏幕之間的延遲可能意味著它們會轉到瀏覽其它的站點?假如你的是商業站點,這有可能意味著失去潛在的銷售。 
我們沒有任何辦法控制用戶的帶寬,但我們的確能通過優化Asp 站點來獲得最佳的*能。大部分潛在*能的提升是通過系統改變而不是緊縮代碼,一個不合適的想法是,一旦遇到系統效率問題,就向系統**者提意見要其升級系統。 
首先,哪個因素可能影響Asp的*能?很不幸,有很多因素?下面這些只是其中的一部分: 
可用帶寬 
服務器上的處理器和其它硬件的速度 
在服務器上運行的其它程序(比如象那些OpenGL屏幕保護程序!) 
數據庫連接模式,連接池,數據庫系統本身(比如Oracle優于Sql Server,Sql server優于Access) 
所使用的語言 
存儲過程優于行式Sql語句 
使用編譯組件而不是VB或JavaScript,好的Asp編程經驗,比如錯誤處理等 
一些以上的因素可能已經被有IIS 知識經驗的開發者普遍留意到了,但其它的可能對于他們來說是十分復雜的問題。在這篇文章里, 將試著解釋所有影響Asp*能的每個因素,讓我們看一看那些在我們刮胡子的幾毫秒內就能做到的主要事情。 
ASP腳本大小 
你是腳本頁(還有其它頁面)是不是比必須的長度要長?這是一開始執行就會降低Asp *能的東西。ASP 腳本在用來獲取信息和格式化輸出的時候是十分有用的,但腳本也是逐行解釋執行,所以你的腳本越長,執行它的時間也就越長。 
如果你的腳本很龐大,怎么做才能減少腳本的長度呢?這里有幾點建議: 
你可以將它們轉換成服務器端組件,也就是說,做成VB動態鏈接庫DLL或者通過先進的Windows編程語言或適當的COM 接口語言將它轉換成未編譯組件?并且在服務器端注冊它們。有關的快速指南可以在 
http://www.webdevelopersjournal.com/articles/activex_for_asp.html找到。對一個寫得好的ActiveX 組件進行編譯不但能大幅度提高*能,還可以保護你的軟件(腳本),尤其當你將你的Asp站點發布在第三方主機上的時候。 
因為腳本是逐行解釋執行的,所以剔除多余的腳本或建立更高效率的腳本能夠改進*能。如果你在單個Asp 文件中有數百行的代碼,可能這樣做你能很好地劃分使用者,買賣和數據服務。事實上,如果你這樣做,可能會找出一些冗余的代碼:如果你需要輸出幾個表格,你可以編寫一個通用函數來輸出一個表格,只是多次調用它。 
在講述Asp 腳本的大小問題的時候,不得不提及包含文件的大小。當你使用一個包含文件的時候,整個包含文件被裝入,當包含文件被包含的時候,相當于在Asp 文件本身寫下那部分代碼。因此,如果你在一個冗長的包含文件里定義了很多通用的方法和定義,要明白到在你包含該文件的時候,不管你要不要用到里面的每個方法和定義,它都是被整個裝入的。ASP 緩存全部的展開代碼,這會降低查找效率在這種情況下,包含文件必須被分割成更小的,模塊化的文件。也要明白到包含文件被服務器視為單獨的頁面請求,使用太多的包含文件會影響下載時間。 
<!-- #include file="Header.asp" --> 
<!-- #include file="Footer.asp" --> 
<SCRIPT language="vbscript" runat="server"> 
Sub Main() 
WriteHeader 
WriteBody 
WriteFooter 
End Sub 
Sub WriteBody() 
... 
End Sub 
Main?'調用過程Main 
</SCRIPT> 
假如你的腳本冗長的話,請使用Response.IsClientConnected。這意味著在客戶端不再連接到服務器的時候,你的服務器CPU能避免循環等待。 
<% 
'檢查客戶端是否仍在連接 
If Not Response.IsClientConnected Then 
'仍然連接著,處理程序 
Else 
'斷開 
End If 
%> 
Interspersing ASP and HTML 
每個人都這樣做?當我們輸出表格的時候,我們會在ASP 和HTML代碼間轉換,而這是一個不好的習慣。例如: 
<HTML> 
<BODY> 
<% 
Set MyConn = Server.CreateObject("ADODB.Connection") 
MdbFilePath = Server.MapPath("sample.mdb") 
MyConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";" 
SQL_query = "SELECT * FROM Friends" 
Set RS = MyConn.Execute(SQL_query) 
WHILE NOT RS.EOF 
%> 
<LI><%=RS("Name")%>: <A HREF="">Homepage</A> 
<% 
RS.MoveNext 
WEND 
%> 
</BODY> 
</HTML> 
另一個普遍的例子是使用IF語句的時候: 
<% 
If Not Session("DBOpen") Then 
%> 
<H1>Database not connected</H1> 
<% 
Else 
%> 
<H1>Database open</H1> 
<% 
End If 
%> 
在這些情況下,腳本*能能通過將服務器端腳本寫到一起來,而用Response.write產生Html代碼來提高*能。比如: 
<% 
If not Session ("DBOpen") Then 
Response.Write "<H1>Database not connected</H1>" 
Else 
Response.Write "<H1>Database open</H1>" 
End If 
%> 
在大的腳本和很多腳本的情況下,你將能看到*能的提高。注意這里盡量避免了使用<%標記,這樣就能提高*能,ASP不需在執行腳本的時候計算字符的Ascii碼。 
Session狀態 
無庸置疑地,在Asp中能夠通過Session維持某個狀態的能力是十分強大的特色。然而,它會影響你的*能。明顯地,你的站點的可伸縮**變成了另一個問題,如果限制Session的使用的話。然而,session會為每個用戶消耗服務器資源。 
如果你不使用session 變量,或事實上你不必使用?使用隱藏表單域,在數據庫中保存數據,查詢字符串是不是其中的竅門?所以你應該禁止Session狀態。你可以使用下面的聲明禁止使用session: 
@EnableSessionState = False 
這樣,ASP將不再檢查session信息。 
如果你不得不依賴于session狀態,應該避免在session對象中存放大量的數據。IIS中的session在客戶端的HTTP cookie可用的時候就會保持,導致被session占用的內存在session 終止或超時前一直被占用。這樣,如果很多用戶同時使用你的程序的時候,你的服務器資源可能會耗盡。 
數據庫訪問 
數據庫訪問是必須的麻煩?訪問數據庫將會激烈地減慢你的程序,但很顯然,如果沒有數據庫,很多站點將變得毫無價值可言。但通過存儲過程訪問數據庫來代替使用嵌入式Sql 語句,你可以提升潛在的*能。通過使用存儲過程和ActiveX Data Objects (ADO),它們亦同樣擁有良好的靈活*。盡可能從存儲過程來輸出數據。 
確認你的數據庫具有索引,因為這樣能直接提高你的程序的效率。同樣,盡量在你的數據庫服務器運行更新統計(Update Statistics) 以幫助追蹤你的數據分發,這樣,你的數據庫就能夠基于這些信息來改造查詢執行。注意一些數據庫比如MS Access,是不是真正能在企業級程序中接受?SQL Sever 7.0或者Oracle是一個更好的賭注。 
讓SQL象它被設計的那樣工作,它能count(統計),連接(join),排序(sort)和group 數據。當你能夠寫出一個查詢語句來做這些東西的時候,就不要自己用其它語言來實現。 
下面是一個統計所有列的最簡單的語法: 
SELECT count(*) FROM publishers WHERE state='NY' 
如果你統計一個指定的列,你必須使用group by語句來分組該列,否則它不會工作: 
SELECT count(city),city FROM publishers GROUP BY city 
分類返回的數據: 
SELECT * FROM TableName WHERE FieldName>50 OR FieldName<100 ORDER BY FieldName2, Field Name3 
使用Odbc還是文件DSN連接數據庫?使用快速的OLEDB Provider技術連接你的數據庫而不是使用DSN連接。不再需要懇求你的ISP(或數據庫**員/網管)為你建立一個系統DSN,當你移走Web文件的時候,亦不需要改變配置。 
OLEDB 介于ODBC層和應用程序之間。在你的ASP 頁面中,ADO介于ODEDB之上的“應用程序”。你的ADO調用首先被送到OLEDB,接著被送到ODBC層。然而,你可以直接連接到OLEDB 層,并且如果你這樣做的話,你就能看到服務器端*能的提高。然而,怎樣直接連接到OLEDB? 
如果你使用SQLServer 7,使用下面的連接代碼連接數據庫: 
strConnString = "DSN='';DRIVER={SQL SERVER};" & _ 
"UID=myuid;PWD=mypwd;" & _ 
"DATABASE=MyDb;SERVER=MyServer;" 
最重要的參數是DRIVER=部分。如果你要繞過ODBC而使用通過使用OLEDB 連接SQL Server(這是更快的連接),請使用下面的語法: 
strConnString ="Provider=SQLOLEDB.1;Password=mypassword;" & _ 
"Persist Security Info=True;User ID=myuid;" & _ 
"Initial Catalog=mydbname;" & _ 
"Data Source=myserver;Connect Timeout=15" 
有什么不對的地方嗎? 
現在你可能會覺得有點奇怪:我們在這個新的連接方法中的要點是什么呢?為什么不使用標準DSN-less/System DSN途徑?呵,根據Wrox 在他的著作《ADO 2.0 Programmer's Reference》中測試的結果表明,如果你使用OLEDB連接和DSN或者DSN-less連接方法比較,你會發現有下面的改進: 
*能對比: 
SQL Access 
OLEDBDSNOLEDBDSN 
連接時間:18?82?連接時間:62?99 
查詢1,000條記錄時間:29005400查詢1,000條記錄時間: 100950 
注釋:這個結果在Wrox的《ADO 2.0 Programmer's Reference》一書的第232和233頁可以查到。時間的單位是毫秒,查詢1,000記錄時間是通過服務器端游標計算出來的(當使用客戶端游標的時候,OLEDB與DSN記錄集的*能之間的差別不大)。 
ASP譯碼問題: 
盡可能在客戶端確認用戶輸入來減少HTTP來回請求的數量。如果瀏覽器有支持JavaScript或其它腳本的能力,使用它們的力量以釋放更多的服務器資源。 
下面的VBScript運行于客戶端瀏覽器,在提交到你的服務器之前,用來驗證用戶信息: 
<SCRIPT LANGUAGE="VBScript"> 
<!-- 
Sub btnEnter_OnClick 
Dim TheForm 
Set TheForm = Document.MyForm 
If IsNumeric(TheForm.Age.Value) Then 
TheForm.submit 
Else 
Msgbox "Please enter a numerical age." 
End if 
End Sub 
//--> 
</SCRIPT> 
<FORMmethod="POST" name=MyFormaction="myfile.asp">? Name: <INPUT typr="text" name="Name"> 
Age: <INPUT type="text" name="Age"> 
<INPUT type="button" name="btnEnter"value="Enter"> 
</FORM> 
使用局部變量,避免使用全局變量。局部變量比全局變量更快地被Asp 腳本引擎存取,因為不需搜索整個名稱域。避免改變數組定義。在第一次初始化的時候就簡單分配足夠的大小效率更高。在這種情況下,你可能會浪費一些內存,但你獲得了速度的優勢。在服務器負載重的時候這個技術是顯然易見有效的。 
如果你需要引用不一定要用到的對象,那么最好使用<OBJECT>標記而不是用 Server.CreateObject方法。 使用Server.CreateObject引起對象立即被建立,反之,<OBJECT>標記則不會這樣立即建立對象如果使用<object>定義后不使用該對象,你不會浪費資源。 
例如:下面的例子是一個使用<OBJECT>標記建立一個application-scope廣告輪 Ad Rotator對象實 
例: 
<OBJECT runat=server scope=Application id=MyAds progid="MSWC.AdRotator"> 
</OBJECT> 
在存儲該Ad Rotator對象進Application后,你可以在任何程序的頁面中用下面的語法訪問該對象 
<%=MyAds.GetAdvertisement("CustomerAds.txt") %> 
打開'Option Explicit'開關。在VB和VBScript 中,你可以在沒有顯式聲明的情況下使用變量。但打開這個選項可以鑒別用定義變量,這樣可以很好地書寫變量,并能幫助提高*能。未定義的局部變量會變慢,因為在建立它之前,名稱空間必須被搜遍后才知道變量是否存在。擺脫它,使每個變量清楚地定義(先定義后使用)。 
這是一個好習慣,it may trap typos, 這樣更快。 
除非你真正需要使用,否而不要使用Server.MapPath方法。如果你知道真實路徑就使用真實路徑。使用MapPath需要IIS找回現時服務器路徑,這意味著得向服務器發一個特殊的請求,也就意味著降低了*能。另一個方法是將路徑存放到局部變量中,在需要的時候使用,這樣就不需要服務器多次查找。 
檢查你自己是怎么做的 
你可以通過工具來測量你的系統*能,比如系統*能監視器,netMon和PerfMon。測試web*能可以用WCAT (Web Capacity Analysis Tool)。使用WCAT,你可以測試你的IIS服務器和網絡配置響應各種各樣的客戶請求,數據或HTML頁面的能力。這些測試結果能夠被用來作為優化你的服務器和網絡配置的指導。WCAT是專門設計用來估計Windows 2000中的因特網服務(或Windows NT)和IIS 能響應的客戶工作量 
(仿真)。為了得到更多的信息,請參閱IIS Resource Kit(資源工具包)。那里也有冗長的WCAT用戶指南在MSDN在線Web sorkshop站點里面有一個下載鏈接。如果你認真對待你的Asp *能的話,務必取得該工具。 
力求最優化應用程序*能,你的web 應用程序會運行更加順暢。如果不是真正需要,就不要影響服務器的*能。 
asp 用存儲過程實現數據分頁 
 一、創建表 tiku_koushi 
if exists (select * from dbo.sysobjects where id = 
object_id(N'[dbo].[tiku_koushi]') and OBJECTPROPERTY 
(id, N'IsUserTable') = 1) 
drop table [dbo].[tiku_koushi] 
GO 
CREATE TABLE [dbo].[tiku_koushi] ( 
[id] [int] IDENTITY (1, 1) NOT NULL , 
[title] [varchar] (250) COLLATE 
Chinese_PRC_CI_AS NULL , 
[list2_id] [char] (10) COLLATE 
Chinese_PRC_CI_AS NULL 
) ON [PRIMARY] 
GO 
  二、存儲過程 sp_c 
CREATE proc sp_c 
@tablename varchar(50), 
@title varchar(250), 
@list2_id varchar(50) 
as 
if @tablename='tiku_koushi' 
select count(*) from tiku_koushi where title like '%'+@title+'%' and list2_id=@list2_id 
GO 
 三、存儲過程 sp_search_tiku 
CREATE PROCEDURE sp_search_tiku 
@tablename varchar(50), 
@title varchar(250), 
@list2_id varchar(10), 
@pagesize int, 
@page int 
AS 
if @tablename='tiku_koushi' 
begin 
declare @ks int 
declare @str varchar(200) 
set @ks=@pagesize*(@page-1) 
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[temp_table91]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
begin 
select * into temp_table91 from tiku_koushi where 
title like '%'+@title+'%' and list2_id=@list2_id order 
by id desc 
set rowcount @pagesize 
set @str='select * from temp_table91 where id not in 
(select top '+str(@ks)+' id from temp_table91)' 
execute(@str) 
drop table temp_table91 
end 
end 
GO 
  四、search_koushi.asp 
<!-- #include file="conn.asp" --> 
<% 
line=6 
if request("page")="" then 
page=1 
else 
page=request("page") 
end if 
if page<1 then 
page=1 
end if 
title=trim(request("title")) 
list2_id=trim(request("list2_id")) 
set rs2=conn.execute("sp_c 'tiku_koushi','"&title&"','"&list2_id&"'") 
pagecount=CInt(rs2(0)/line) 
if(CInt(rs2(0)) mod line)=0 then 
pagecount=pagecount 
else 
pagecount=pagecount+1 
end if 
if CInt(page)>=pagecount then 
page=CInt(pagecount) 
end if 
str="" 
str=str&"page="&page&"&title="&title&"&list2_id="&list2_id 
set rs=conn.execute 
("sp_search_tiku 'tiku_koushi','"&title&"','"&list2_id&"','"&line&"','"&CInt(page)&"'") 
if rs.eof then 
response.write "no record" 
else 
%> 
<html> 
<head> 
<style type="text/css"> 
td{font-size:12px;} 
a{text-decoration:none;} 
</style> 
<script language="javascript"> 
</script> 
</head> 
<body> 
<table width="518" border="1" bordercolorlight="000000" 
bordercolordark="#ffffff" 
align="center" cellpadding="0" cellspacing="0"> 
<!--DWLayoutTable--> 
<tr bgcolor=#dfdfdf> 
<td width="454" align="center" height=24 valign="middle">口試題的題目</td> 
<td width="63" align="center" valign="middle">刪除</td> 
</tr> 
<% do until rs.eof %> 
<tr height=22> 
<td valign="middle">·<a href=void(0)" 
onclick="window.open('editkoushi.asp?id=<%=rs("id")%>&page=<%=page%>&title=<%=title%>&list2_id=<%=list2_id%>','','width=518 
height=160 left=100')"> 
<%=rs("title")%></a></td> 
<td align="center" valign="middle">刪除</td> 
</tr> 
<% 
rs.movenext 
loop 
%> 
<tr align="left" valign="middle" bgcolor="efeff6" 
height=22> 
<td colspan="2" style="padding-left:6px;"> 
<a href="search_koushi.asp?page=<%=1%>&title=<%=title%>&list2_id=<%=list2_id%>">首頁</a> <a 
href="search_koushi.asp?page=<%=page-1%>&title=<%=title%>&list2_id=<%=list2_id%>">上一頁</a> <a 
href="search_koushi.asp?page=<%=page+1%>&title=<%=title%>&list2_id=<%=list2_id%>">下一頁</a> <a 
href="search_koushi.asp?page=<%=pagecount%>&title=<%=title%>&list2_id=<%=list2_id%>">末頁</a>   
一共 <%=pagecount%> 頁 當前頁為: <%=page%>/<%=pagecount%> 頁 
  共有 <%=rs2(0)%> 條記錄</td> 
</tr> 
</table> 
</body> 
</html> 
<% 
rs2.close 
set rs2=nothing 
rs.close 
set rs=nothing 
end if 
%>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久精品影院| 亚洲黄色www网站| 国产手机视频精品| 久久91精品国产91久久久| 欧美激情乱人伦| 高跟丝袜一区二区三区| 91在线视频精品| 欧美大成色www永久网站婷| 亚洲国产欧美一区二区三区久久| 欧美大片网站在线观看| 亚洲国产日韩欧美在线图片| 欧美日韩成人精品| 伊人成人开心激情综合网| 日韩精品中文字幕在线观看| 亚洲精品99久久久久中文字幕| 亚洲网址你懂得| 国产主播喷水一区二区| 日韩精品免费综合视频在线播放| 伊人久久久久久久久久| 最近2019免费中文字幕视频三| 中文字幕久久亚洲| 日韩中文娱乐网| 亚洲**2019国产| 国产一区视频在线| 中文字幕精品视频| 精品电影在线观看| 另类天堂视频在线观看| 亚洲www在线观看| 亚洲国产毛片完整版| 亚洲视频综合网| 欧美成人免费观看| 色中色综合影院手机版在线观看| 国产成人小视频在线观看| 国产精品444| 国产午夜精品久久久| 欧美激情奇米色| 97在线观看视频国产| 中文字幕亚洲天堂| 日韩一区av在线| 精品国产一区二区三区久久久狼| 日韩欧美中文免费| 日韩视频在线免费观看| 在线日韩精品视频| 亚洲国产日韩欧美综合久久| 国产精品久久色| 欧美精品一区在线播放| 国产欧美日韩视频| 国产精品视频公开费视频| 中文字幕精品在线视频| 中文字幕一区二区精品| 欧美亚洲国产另类| 久久精品成人欧美大片古装| 久久久免费精品视频| 国内外成人免费激情在线视频| 亚洲精品欧美一区二区三区| 国产69久久精品成人看| 国产精品第2页| 日韩有码在线播放| 亚洲欧美日韩综合| 欧美性猛交xxxxx水多| 亚洲xxx自由成熟| 韩国日本不卡在线| 国产欧美一区二区三区久久| 欧美成人在线影院| 91中文字幕一区| 成人黄色片在线| 在线精品高清中文字幕| 精品中文字幕久久久久久| 日日狠狠久久偷偷四色综合免费| 欧美体内谢she精2性欧美| 国产日韩欧美视频| 欧美日韩美女在线观看| 亚洲夜晚福利在线观看| 青青在线视频一区二区三区| 在线精品91av| 久久色在线播放| 欧美一二三视频| 国产精品第一页在线| 国产精品久久久久一区二区| 国产精品专区h在线观看| 欧美另类极品videosbestfree| 色综合伊人色综合网站| 国产在线播放不卡| 91日本视频在线| 91麻豆国产语对白在线观看| 欧美自拍视频在线观看| 欧美日韩精品在线视频| 欧美一级在线播放| 美日韩精品免费视频| 夜夜狂射影院欧美极品| 日本精品视频网站| 国产精品免费小视频| 国产成人在线播放| 欧美精品电影在线| 国产精品自拍偷拍| 91免费人成网站在线观看18| 日韩av最新在线| 成人福利视频在线观看| 日韩在线观看免费| 日本久久久久久久久久久| 欧美日韩国产精品专区| 久久久久久久爱| 国产日韩av在线| 欧美激情一区二区久久久| 97视频在线观看视频免费视频| 久久综合亚洲社区| 亚洲欧美国产高清va在线播| 亚洲性生活视频| 午夜精品久久久久久久99热浪潮| 在线观看亚洲视频| 搡老女人一区二区三区视频tv| 欧美日韩午夜视频在线观看| 久久综合免费视频| 日韩美女毛茸茸| 中文字幕日韩精品在线| 国内精品模特av私拍在线观看| 久久成年人免费电影| 欧美一级免费看| 久久久久久午夜| 91sao在线观看国产| 欧美黄网免费在线观看| 亚洲电影免费在线观看| 久久理论片午夜琪琪电影网| 91免费电影网站| y97精品国产97久久久久久| 亚洲日韩中文字幕在线播放| 91精品中国老女人| 日韩电影中文字幕| 国产精品青草久久久久福利99| 日韩欧美在线视频免费观看| 亚洲国内高清视频| 亚洲国产高潮在线观看| 欧美电影在线观看高清| 成人精品视频久久久久| 久久久久久久久久久久久久久久久久av| 国产精品亚洲第一区| 国产精品亚洲激情| 精品亚洲一区二区三区在线播放| 国产成人在线亚洲欧美| 欧美主播福利视频| 精品亚洲精品福利线在观看| 午夜精品一区二区三区在线| 国产一区二区久久精品| 国产成人自拍视频在线观看| 中文国产成人精品久久一| 九九热99久久久国产盗摄| 5566日本婷婷色中文字幕97| 国产成人福利网站| 在线观看不卡av| 日韩av手机在线看| 精品香蕉在线观看视频一| 久久国产精品久久国产精品| 精品久久久久久久久久久久久久| 欧美日韩国产999| 亚洲美女喷白浆| 这里只有精品在线观看| 亚洲成人黄色在线观看| 国产69精品久久久久9999| 欧美日韩亚洲成人| 亚洲视频免费一区| 国产一区二区黄| 欧美日韩午夜剧场| 亚洲女人被黑人巨大进入al| 97视频在线观看成人|