推奨:ASPテクノロジーとPHP、CGI、JSP、その他のテクノロジーの比較現在、最も一般的に使用される3つの動的Web言語は、ASP(アクティブサーバーページ)、JSP(Javaserverページ)、およびPHP(HyperText Preprocessor)です。はじめにASPフルネームアクティブサーバーページは、Webサーバー側の開発環境です。
多くの紹介を読んだ後、SET RS = CONN.EXECUTE(SQL)の実行効率はRs.Open SQL、CONN、1,1の実行効率よりもはるかに高いことを知っていますが、SET RS = Conn.Execute(SQL)の実行方法にも多くの欠点があります。まず、Rs.Pagesize、RS、AbsolutePage、その他の属性などのページング属性はありません。このようにして、セットrs = conn.execute(sql)はこの方法でより速く実行されますが、通常の方法ではパジを動かすことはできません。どうすればいいですか? ?
翌日、私はオンラインで情報を確認し、突然、必要なデータを配列に言及してから配列をページングできるかどうかについて考えましたか?最初に、クエリセットrs = conn.execute(sql)の結果をrs.getRows()から取り出し、配列に添付しました。そこで、各Webサイトでページングされた投稿を探しました。私は多くの効率的なページングの投稿(ストアドプロシージャなどを含む)を見つけましたが、それらはすべてSQLを介して実行する必要があることがわかりました。つまり、ページをめくるとき、SQLステートメントを実行する必要がありました。この時点で、私はめまいがしていて、唯一の最適化はSQLステートメントのみでした。私は本当に自分自身に一生懸命働く以外に選択肢がありませんでした!最後に、アレイページの大まかなドラフトが完了しました。コードはそれほど完全ではありませんでした。みんなに一緒に勉強させてください!コードは次のとおりです。
最初にindex.aspクエリページがあります:
| <html xmlns = http://www.w3.org/1999/xhtml> <head> <メタhttp-equiv = content-type content = text/html; charset = gb2312 /> <title> un unt ittitled document </title> </head> <body> <form id = searchform name = searchform method = post action = search.asp?act = cha> <div class = input> <入力ID =キーワードonMouseOver = this.focus()title =迅速にメッセージレコードonfocus = this.select()class = in maxlength = 35 name = keyword /> <select style = width:120px; margin-top:-25px name = channelid> <オプション値= k2>メッセージ</option> <オプション値= k1>メッセージコンテンツ</option> </select> <入力id = search_btn type = submit value = query> </div> </form> </body> </html> Search.aspコード: <html xmlns = http://www.w3.org/1999/xhtml> <head> <メタhttp-equiv = content-type content = text/html; charset = gb2312 /> <title> un unt ittitled document </title> </head> <body> <% request.querystring(act)= cha thenの場合 search_type = request.form(channelid) キーワード= request.form(キーワード) search_type = k1の場合、メッセージの内容に従って検索 sql = select * from gbook_rec from g_content like '%&keywords&%' elseif search_type = k2次に 'search_type = k2の場合、'メッセージで検索します sql = select * from gbook_rec from g_name like '%&keywords&%' それ以外 Response.End ifを終了します rs = conn.execute(sql)を設定します rs.eofとrs.bofの場合 %> <div class =検索>あなたが望むレコードが見つかりませんでした! </div> <% Response.End それ以外 aresults = rs.getRows() 'データを取り出して配列の行に入れます アプリケーション(データ)= aresults rs = Nothingを設定します conn.close 'データベースを閉じます ifを終了します ifを終了します aresults = application(data) dim i、row、pagesize、epage、numb、pagecount、fenye numb = ubound(aresults、2)1 'レコードの総数 Pagesize = 2 '1ページあたりの数 numb mod pagesize = 0の場合、 'ページの総数を判断します pagecount = int(numb/pagesize) それ以外 pagecount = int(numb/pagesize)1 ifを終了します エピソード= request.querystring(ページ) epage = then epage = 1の場合 for i =(epage-1)*pagesize to epage*pagesize-1 i> ubound(aresults、2)またはi <0の場合、end %> <div class = content> <ul> <li>レコード<%= i 1%> </li> <li>メッセージ:<%= aresults(1、i)%> </li> <li>コンテンツ:<%= aresults(2、i)%> </li> <li>時間:<%= aresults(3、i)%> </li> <li> IP:<%= aresults(5、i)%> </li> </ul> </div> <% 次 numb> pagesizeの場合 fenye = <a href = search.asp?page = 1>ホームページ</a> fenye = fenye&<a href = search.asp?page =&epage-1&title =&epage-1&>前のページ</a> fenye = fenye&<a href = search.asp?page =&epage 1&title =&epage 1&> last page </a> fenye = fenye&<a href = search.asp?page =&pagecount&> last page </a> fenye = fenye&<br> fenye = fenye&Page&pagecount&、current Page&epage&、Total Record is:&Numb Response.write fenye ifを終了します %> </body> </html> |
概要:上記のコードは、最初のクエリを除いてデータベースに接続する必要はないと考えており、大規模なデータクエリや大量の人が接続している場合、リソース保存に非常に役立ちます。さらに、アプリケーションオブジェクトにクエリ配列を保存すると、アプリケーション(データ)(ユーザー名)に基づいて誰かがクエリしたものを決定することもできます。ただし、このコードは最初のモデルであり、将来的に改善するのに十分なモデルです!みんながそれに注意を払い、サポートしてくれることを願っています、ありがとう!
テストコードのダウンロード
共有:無料のシンプルなチャットルームソースコードchat.html以下は参照コンテンツです:<html> <head> <title> chat </title> </head> <frameset rows =*、100>&