>  기사  >  웹 프론트엔드  >  cookie_javascript 기술을 작동하기 위해 js를 사용하여 얻을 수 있는 작은 이점 공유

cookie_javascript 기술을 작동하기 위해 js를 사용하여 얻을 수 있는 작은 이점 공유

WBOY
WBOY원래의
2016-05-16 17:23:461006검색

이 문제를 명확하게 설명하려면 처음부터 시작해야 합니다.

먼저 백그라운드에서 매개변수를 구성하고 이를 필드에 넣습니다. 이 매개변수의 값은 efmis://|efmfj|username|2200|0||2014|http입니다. ://10.20 .1.54:7001/cssServerportal222012/|||||02, 이 값의 의미에 관계없이 많은 사람들이 이보다 더 복잡한 문자열을 접했다고 생각합니다. 백엔드가 구성된 후 프런트엔드는 ${tag_bean.keywords}와 같이 표시할 수 있습니다. 백엔드가 어떻게 구성되어 있든 프런트엔드는 계획대로 표시됩니다. 첫 번째 문제는 위치에서 발생합니다. 사용자 이름 중 embed는 현재 로그인한 사용자의 사용자 이름이며 동적 코드여야 합니다. efmis://|efmfj|${username}|2200|0||2014|http://10.20.1.54:7001/cssServerportal222012로 작성해야 합니까? 이렇게 작성하면 예상과 다르며 EL 표현식을 동적 코드로 변환하지 않습니다. 당연히 EL 표현식을 직접 사용할 수는 없습니다. be 그러한 문자열을 처리해야 합니다.

이 문자열은 js 메소드의 매개변수로 사용됩니다. 예:

코드 복사 코드는 다음과 같습니다:

  • [/#if] path="${c .path}" onclick ="clickClient(this.path,this.keywords);">



  • clickClient 메소드는 호출되는 메소드가 아닙니다. 단지 전환 방법 일뿐입니다.

    코드 복사 코드는 다음과 같습니다.
    clickClient = function(path,keywords){
    //키워드 구문 분석 및 분해 시작
    keywords =keywords.replace("username","${user.username}")
    var suffIndex=keywords.indexOf("http"); >var prefix = 키워드.substr(0,suffIndex-1);
    var suffix = 키워드.substr(suffIndex-1)
    var preIndex=prefix.lastIndexOf("|") 1; year = prefix.substr(preIndex);
    prefix = prefix.substr(0,preIndex)
    //키워드 분석 끝
    //url 병합
    keywords = prefix $(" #year").val () suffix;
    clientInvoke(path,keywords);
    }


    이 메서드에서 최종 목적은 clientInvoke 메서드를 호출하는 것이며 매개 변수는 전달된 키워드가 변경되었습니다. 특정 처리 후 먼저 user를 ${user.username}으로 바꾸세요. js 코드에 EL 표현식이 포함되어 있어도 동적으로 구문 분석되어 현재 사용자 이름을 호출합니다. . 2014년도 동적이며 전환 가능하도록 설정된 경우 문자열을 세 부분으로 분해해야 합니다.
    접두사: efmis://|efmfj|username|2200|0 || >연도: 2014

    접미사: |http://10.20.1.54:7001/cssServerportal222012/||||02

    연도를 선택하세요. 드롭다운 메뉴에서 clickClient 메소드를 터치하면 연도가 현재 옵션에서 즉시 제거된 다음 접두사 및 접미사와 연결되어 연도 변경의 유연성이 달성됩니다.




    코드 복사
    코드는 다음과 같습니다. 연도 전환 <옵션 값="2012">2012
    <옵션 값="2013">2013< /option>

    select>


    이 때 문제가 발생합니다. 기본 2014 등으로 전환한 후 페이지를 새로 고치면 다시 기본값으로 변경됩니다. 2014. 어떻게 해야 하나요? 모든 변수는 새로 고침 후에 다시 로드되므로 전역 변수를 설정하는 방법이 작동하지 않습니다. 따라서 페이지를 새로 고칠 때 변경되지 않고 조작하기 쉬운 것은 무엇입니까? 이 글의 제목을 보시면 다들 아실 거라 생각합니다: 쿠키!

    쿠키는 로컬에 저장되는 리소스이며 언제든지 저장하고 검색할 수 있어 비밀번호를 기억하는 데 큰 역할을 합니다. 이때 우리는 쿠키를 사용하여 쿠키에 연도를 저장합니다. 페이지가 로드될 때마다 쿠키가 있는지 확인하고 존재하지 않으면 선택 항목에서 꺼내어 쿠키에 저장합니다.



    코드 복사

    코드는 다음과 같습니다.

    $(document).ready(function(){
    if(getCookie("Year")==null){//쿠키가 존재하지 않으면
    setCookie("에 넣으세요. Year" ,$("#year").val());
    }else{
    //쿠키가 이미 존재하므로 제거하세요
    $("#year").val(getCookie ("연도"));
    }
    });
    //쿠키 설정
    function setCookie(name,value)
    {
    //var Days = 30; >// var exp = new Date();
    //exp.setTime(exp.getTime() 365*24*60*60*1000)
    document.cookie = name "=" 이스케이프 (값 );
    // ";expires=" exp.toGMTString();
    }
    //쿠키 읽기
    function getCookie(name)
    {
    var arr,reg=new RegExp( "(^| )" name "=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg)) return unescape(arr[2]) ;
    else return null;


    물론 연도를 전환하면 쿠키 값도 변경됩니다.


    switchYear=function(year){
    setCookie("Year",year)
    }


    사용자 요구 사항에 따라 2014를 기본값으로 설정하세요. 각 쿠키 전환 작업이 완료된 후 브라우저를 닫고 다시 열어서 홈페이지에 로그인하세요. 연도는 마지막 전환된 값이 아닌 2014년입니다. 따라서 쿠키의 만료 시간을 설정할 필요가 없으며 브라우저를 닫은 후 쿠키가 자동으로 지워지도록 하기만 하면 됩니다.

    물론 브라우저가 쿠키를 오랫동안 기억할 것으로 예상한다면 만료 시간을 설정하는 것이 setCookie의 주석 코드입니다. 관심있는 분들은 연구해보시면 됩니다.
    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.