浅談asp.Net本機cookie模百度(google)実現検索inputボックス自動ポップアップ検索ヒント
ユーザーがキーワードを入力して自動的に関連検索結果をポップアップする場合、ここでは2つのソリューションを提供し、2つの異なる状況に使用します.
一般的な方法は、データベースにユーザー検索関係テーブルを作成し、ユーザー検索ボックスで入力したキーワードを介してデータテーブルの関連データを非同期で呼び出し、非表示divに表示することです.
第2の方法は、私が今重点的に議論している方法であり、単一のユーザーに適用され、このユーザーの従来の検索データに基づいて検索ヒント機能を実現することである.技術的に重要なのは,ユーザの従来の検索データを記録し,クッキーに書き込み,ユーザ本体クッキーからページが呼び出されることである.
OK、次は本題に入ります.本文は主に実装手順を述べ、コードは自分の実際の必要に応じて変更することができる.
まず、HttpCookieオブジェクトを作成し、このオブジェクトによってCookieを構築します.このオブジェクトの名前は、後で生成されるCookie名です.具体的には、次のコードがあります.
例えば:MyNameCookie.Value=「ユーザーがCookieに値を付与する」書き込みたいCookieの数値が単純な文字列ではなく複雑なデータ型である場合、Cookieには文字列しか保存できないため、これらのデータ型はCookieに直接保存できないことを知っています.しかし、この複雑なデータ型を複数の文字列に変換し、生成されたCookie値に同時に値を割り当てることで、Cookieの内容が豊富になり、今後Cookieを利用して完成する機能も強くなります.Webサーバを閲覧すると、Webサーバがいつ閲覧したか、どのくらい滞在したかなどの情報がわかるかもしれません.これらの情報は、あなたが初めてページを閲覧したとき、Webサーバが生成したCookieに格納されているからです.次のコードは、Cookieに複数の文字列を格納する例です.
DateTime dtNow = DateTime . Now ;
TimeSpan tsMinute = new TimeSpan ( 1 , 0 , 0 , 0 ) ;
cookie . Expires = dtNow + tsMinute ;
以上のコードは、生成されたCookieのライフサイクルを「1日」に設定し、「TimeSpan」プロパティを変更することでCookieを生成する具体的なライフサイクルを設定することができます.
OK、総合的に、クッキー付きの操作コードは以下の通りです.
まずjavascriptでコード
一般的な方法は、データベースにユーザー検索関係テーブルを作成し、ユーザー検索ボックスで入力したキーワードを介してデータテーブルの関連データを非同期で呼び出し、非表示divに表示することです.
第2の方法は、私が今重点的に議論している方法であり、単一のユーザーに適用され、このユーザーの従来の検索データに基づいて検索ヒント機能を実現することである.技術的に重要なのは,ユーザの従来の検索データを記録し,クッキーに書き込み,ユーザ本体クッキーからページが呼び出されることである.
OK、次は本題に入ります.本文は主に実装手順を述べ、コードは自分の実際の必要に応じて変更することができる.
一、クッキーはどう書きますか?
Cookieに書き込むために、彼のステップは主に3つのステップがあり、具体的には以下の通りである.まず、HttpCookieオブジェクトを作成し、このオブジェクトによってCookieを構築します.このオブジェクトの名前は、後で生成されるCookie名です.具体的には、次のコードがあります.
HttpCookie cookie = new HttpCookie("MyOnlyCookieName");// Cookie
は、作成されたHttpCookieオブジェクトのValue属性に文字列値を割り当て、Valueの値は後に生成されたCookieの値である.例えば:MyNameCookie.Value=「ユーザーがCookieに値を付与する」書き込みたいCookieの数値が単純な文字列ではなく複雑なデータ型である場合、Cookieには文字列しか保存できないため、これらのデータ型はCookieに直接保存できないことを知っています.しかし、この複雑なデータ型を複数の文字列に変換し、生成されたCookie値に同時に値を割り当てることで、Cookieの内容が豊富になり、今後Cookieを利用して完成する機能も強くなります.Webサーバを閲覧すると、Webサーバがいつ閲覧したか、どのくらい滞在したかなどの情報がわかるかもしれません.これらの情報は、あなたが初めてページを閲覧したとき、Webサーバが生成したCookieに格納されているからです.次のコードは、Cookieに複数の文字列を格納する例です.
cookie [ " " ] = " ";
cookie [ " " ] = " ";
cookie [ " " ] = " 26";
Cookieには一時的なものもあれば、永遠のものもあります.永続Cookieはファイル形式でコンピュータに保存され、Internet Explorerをオフにしてもコンピュータに保存されます.サイトに再アクセスすると、Cookieを作成したサイトを読み込むことができます.具体的なプログラミングでは、このCookieを書き込むときに、Cookieのライフサイクルを設定します.具体的には、次のコードがあります.DateTime dtNow = DateTime . Now ;
TimeSpan tsMinute = new TimeSpan ( 1 , 0 , 0 , 0 ) ;
cookie . Expires = dtNow + tsMinute ;
以上のコードは、生成されたCookieのライフサイクルを「1日」に設定し、「TimeSpan」プロパティを変更することでCookieを生成する具体的なライフサイクルを設定することができます.
OK、総合的に、クッキー付きの操作コードは以下の通りです.
public partial class cookieTest: System.Web.UI.Page
{
string CookieKye = "jinWebCookies";
protected void Page_Load(object sender, EventArgs e)
{
}
protected void WriteCookie()
{
CookieKye = readCookie();
HttpCookie cookie = new HttpCookie(CookieKye);// cookie Info
DateTime dt = DateTime.Now;//
TimeSpan ts = new TimeSpan(30, 0, 0, 0);//cookie .
cookie.Expires = dt.Add(ts);//
string searchKey=searchId.Text.Trim();
cookie.Values.Add(searchKey, searchKey);//
Response.AppendCookie(cookie);// cookie
}
private string readCookie()
{
int i=0;
while (i >= 0)
{
if (Request.Cookies[CookieKye+i] == null)
{
return CookieKye + i;
}
i++;
}
return "";
}
protected void demoCookie()
{
// cookie
if (Request.Cookies[CookieKye] != null)
{
string temp = Convert.ToString(Request.Cookies["Info"].Value);
if (temp == "")
{
Response.Write(" ");
}
else
Response.Write(temp);
}
else
{
Response.Write("error");
}
// cookie
Response.Cookies["Info"]["user"] = "2";
Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1);
// cookie
HttpCookie acookie = Request.Cookies["Info"];
acookie.Values.Remove("userid");
acookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(acookie);
// cookie,
int limit = Request.Cookies.Count - 1;
for (int i = 0; i < limit; i++)
{
acookie = Request.Cookies[i];
acookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(acookie);
}
}
protected void Unnamed1_Click(object sender, EventArgs e)
{
WriteCookie();
}
二、OK、今はページ端のコードです
ページ側ではjsでクッキーデータを読み出し、プロンプトボックスにデータを書き込むまずjavascriptでコード
var setSearchFlag;
function showSearch(obj) {
clearSearchFlag();
var w3c = (document.getElementById) ? true : false; //w3c
var ns6 = (w3c && (navigator.appName == "Netscape")) ? true : false; //Netscape W3C
var left, top;
if (!ns6) {// IE
var nLt = 0;
var nTp = 0;
var offsetParent = obj;
while (offsetParent != null && offsetParent != document.body) {
nLt += offsetParent.offsetLeft;
nTp += offsetParent.offsetTop;
offsetParent = offsetParent.offsetParent;
}
left = nLt;
top = nTp + obj.offsetHeight;
} else {// w3c
left = obj.offsetLeft - 5;
top = obj.offsetTop + obj.offsetHeight;
}
$('#showInfo').css('display', 'block');
$('#showInfo').css('top', top);
var seach = getCookie("jinWebCookies");
$('#showInfo').html(seach);
}
function hideSearch(obj) {
setSearchFlag = setTimeout(function () { $('#showInfo').css('display', 'none'); }, 100);
}
function clearSearchFlag() {
window.clearTimeout(setSearchFlag); // setTimeout() 。
}
function getCookie(cookieName) {// cookie
var cookieContent = '';
var cookieAry = document.cookie.split("; "); // Cookie
for (var i = 0; i < cookieAry.length; i++) {
//var cookieName = cookieName + i;
var temp = cookieAry[i].split("=");
if (temp[0] == cookieName) {
cookieContent = unescape(temp[1]);
}
}
return cookieContent;
}
// Cookie
//document.cookie = "cookieName=" + escape(" "); //cookieName Cookie
ok、検索ボックスを挿入してjsをトリガーします
以上は、本人がここのクッキーに対してユーザ検索データを保存し、ユーザが検索データを入力するポップアッププロンプトのいくつかの実験である.全体的な方法はこのようにして、興味のある学生は一緒に討論することができて、もっと有効な実現方法があることを望んでいます.