>  기사  >  웹 프론트엔드  >  js URL 매개변수_javascript 기술의 스플라이싱 방법 비교

js URL 매개변수_javascript 기술의 스플라이싱 방법 비교

WBOY
WBOY원래의
2016-05-16 17:56:131437검색

가장 일반적인 방법은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
url?arg1=value1&arg2= value2&arg3=value3 ...

이 방법은 가장 일반적이고 일반적이며 이해하기 쉽지만 프로젝트에서 그 뒤에 있는 매개변수가 가변적이고 필드의 값이 다르거나 의미가 다른 경우에는 이 방법이 사용됩니다. 실제로 성능이나 가독성도 높지 않고, 코드가 반복되거나 중복되기 쉽습니다.
예를 들어 CGI에 대한 다음 요청 문자열은 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

var url = "http://www.tenpay.com/app/v1.0/juhui.cgi?"
var queryString = "method=2&page=index"
if(content a){ //홈 페이지의 A 영역에 액세스하려면 하위 페이지 매개변수를 추가해야 합니다.
QueryString = "&subpage=a"
}else if(content b){//B 영역에 액세스한 경우 , 매개변수 하위 페이지를 b
 queryString = "&subpage=b";
}
if(spec_method){
 //보기 시 지정된 필터링 방법을 따르려면, spec_method
queryString = "&spec_method=1"
}

이것은 가장 일반적인 문자열 문자열 논리입니다. 댓글이 번거롭고 가독성도 높지 않고, 필드 설명도 불명확하고, 원본을 기준으로 필드를 바꾸거나 로직을 바꾸는 것도 번거롭습니다.
이 문제에 대한 몇몇 동료들의 해결책을 읽었습니다. 첫 번째는 매개변수를 객체 형태로 저장한 다음 요청할 때 매개변수를 함께 모으는 메소드를 작성하는 것입니다.
코드 복사 코드는 다음과 같습니다.

var queryConfig={
"page" : "index",
" method" : 2, //1: 메소드 A에 따라 보기 2: 메소드 B에 따라 보기
"subpage" : -1, //-1: 이 조건은 전달되지 않습니다. a: 컨텐츠A 보기 b: 컨텐츠B 보기
"spec_method" :-1 //-1: 이 조건은 통과되지 않음 1: 판매량에 따라 확인 2: 시간에 따라 확인
}
var setQueryConfig = function(){
var _str = "";
for(var o in queryConfig){
if(queryConfig[o] != -1){
_str = o "=" queryConfig[o] "&"; >}
}
var _str = _str.substring(0, str.length-1);
return _str;
}

이 방법은 꽤 좋습니다. 장점은 모든 매개변수가 한 눈에 명확하다는 것입니다. 모든 매개변수가 객체에 나열되어 있으며, 필드에 대한 주석도 더 자세히 설명할 수 있어 가독성과 유지 관리성이 향상되지만 단점은 코드가 많다는 것입니다. 매개변수를 결합하려면 특별한 방법을 추가해야 합니다.
또 다른 방법은 배열을 사용하는 것입니다.

코드 복사 코드는 다음과 같습니다.
var queryString = [
"method=2", //메소드 필드에 대한 설명
"page=index"
]
if(content a){ //A 영역 방문한 홈페이지, 매개변수 하위 페이지를 추가해야 합니다
QueryString.concat([
"subpage=a", //하위 페이지 주석
])
}else if(content b){//If 영역 B에 액세스하면 매개변수 하위 페이지는 b가 되어야 합니다.
 queryString.concat([
"subpage=b", //하위 페이지 주석
])
}
if(spec_method) {
//보기 시 지정된 필터링 방법을 따르려면 queryString.concat([
"spec_method=2", //spec_method 주석
])도 추가해야 합니다. 🎜>}
queryString = queryString.join("&");


이 메서드는 개체 메서드보다 읽기 쉽지만 유지 관리가 더 쉽고 코드도 적습니다. 상대적으로 저는 이 방법을 선호합니다.
글쎄, 어제의 코드 리뷰가 아니었다면 이렇게 작은 곳에서 코드 최적화를 찾기 위해 오랜 시간 작업을 해야 했을 것입니다. 코드 리뷰는 자신의 능력을 향상시키는 촉진제인 것 같아요, 하하.
이 두 가지 방법은 제가 임시로 발견한 방법인데 나중에 좋은 방법이 있으면 추가하겠습니다~
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.