토론net 기계 쿠키 바이두 모방 검색 input 검색 알림 팝업 상자 자발적
7192 단어 asp.net
자주 사용하는 방법은 사용자 데이터베이스에서 관계표를 찾는 것이다.그리고 사용자 검색 상자 키워드 비동기 호출 데이터 테이블의 관련 데이터를 입력하십시오.숨겨진 div에 표시됩니다.또 다른 방식은 바로 내가 지금 중점적으로 토론하고 있는 방식이다.단일 사용자에게 적용되며, 이 사용자의 기존 검색 데이터를 바탕으로 검색 알림 기능을 실현한다.기술 관건은 사용자의 과거 검색 데이터를 기록하고 쿠키를 쓴 다음에 페이지가 사용자의 본체 쿠키에서 데이터를 호출하는 것이다.ok, 다음은 본론으로 들어갑니다.본고는 주로 실현 절차를 설명하는데 코드는 자신의 실제 필요에 따라 변경할 수 있다.
1. 쿠키를 어떻게 씁니까?쿠키를 쓰기 위해서요.그의 단계는 주로 세 단계로 상세하다. 예를 들어 다음과 같다.
먼저 Http Cookie 대상을 만들고 이 대상을 통해 쿠키를 만들어야 한다. 이 대상의 이름은 바로 이후에 생긴 쿠키 이름이다.
자세한 내용은 다음 코드와 같습니다.
HttpCookie cookie = new HttpCookie("MyOnlyCookieName");// Cookie
그런 다음 생성된 Http 쿠키 객체의 "Value"속성에 문자열 값을 할당합니다. "Value"값은 나중에 생성된 쿠키의 값입니다.예: MyNameCookie.Value = 사용자가 쿠키에 값을 지정합니다.만약 당신이 쓰고 싶은 쿠키 수치가 간단한 문자열이 아니라 복잡한 데이터 형식이라고 가정한다면, 우리는 이러한 데이터 형식이 쿠키에 직접 저장될 수 없다는 것을 안다.쿠키에는 문자열만 저장할 수 있기 때문입니다.그러나 이 복잡한 데이터 유형을 여러 문자열로 변환한 다음 이 여러 문자열을 같은 시기에 만들어진 쿠키 값에 값을 부여함으로써 쿠키의 내용이 풍부해지고 나중에 쿠키를 이용한 기능도 강해진다.
이럴 때 왜 웹 서버를 훑어보았는지, 웹 서버는 언제 이전에 훑어보았는지, 그리고 얼마나 오래 머물렀는지 정보를 알 수 있을 것이다.이 정보는 웹 페이지를 처음 방문했을 때 웹 서버가 만든 쿠키에 저장되어 있기 때문이다.다음 코드는 여러 문자열을 쿠키에 저장하는 예제입니다.
cookie [ " " ] = " ";
cookie [ " " ] = " ";
cookie [ " " ] = " 26";
쿠키는 일시적인 것이 있다.영원할 수도 있어.영구 쿠키는 컴퓨터에 파일로 저장되며 Internet Explorer를 닫아도 컴퓨터에 남아 있습니다.이 사이트에 다시 액세스하면 쿠키를 만든 사이트에서 읽을 수 있습니다.자세한 프로그래밍은 이 쿠키를 쓸 때입니다.다음 코드와 같이 쿠키의 라이프 사이클을 설정합니다: DateTime dtNow = DateTime.Now ; TimeSpan tsMinute = new TimeSpan ( 1 , 0 , 0 , 0 ) ; cookie . Expires = dtNow + tsMinute ; 위 코드는 생성된 쿠키의 생명기를'하루'로 설정합니다.'Timespan'속성을 바꾸어 쿠키를 만드는 상세한 생명기를 설정할 수 있습니다.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 처 코드
<script>
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
</script>
ok, 그 다음에 검색 상자를 삽입하고 js를 터치합니다 <form id="form1" runat="server">
<asp:TextBox runat="server" id="searchId" onkeyup="showSearch(this)" onblur="hideSearch(this)"/>
<asp:Button runat="server" Text="btn_search AddCookie"
onclick="Unnamed1_Click" />
</form>
<div style="width:150px;height:300px;border:1px solid #817F82;display:none;position: absolute;" id="showInfo"></div>
이상은 본인이 이 쿠키에 대해 사용자의 검색 데이터를 저장하는 것입니다.그리고 사용자가 입력한 검색 데이터 팝업 알림에 대한 실험들전체적인 방법은 이렇다.흥미가 있는 학우들은 토론할 수 있는데, 우리는 더욱 효과적인 실현을 희망한다.
판권 성명: 본 블로그의 오리지널 글, 블로그는 동의 없이 전재할 수 없습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.