[英]How to write this query string in better way?
我在JavaScript中看到一行代碼來構造查詢字符串:
var queryParameters = "imagePath=" + encodeURIComponent(_image.source) + "&saveMode=" + saveMode + "&pageFolderId=" + pageFolderId + "&id=" + pageId + "&parent=" + parent;
queryParameters += "&quality=" + sQuality.value + "&commands=" + commandQueue.Serialize();
有沒有更好的方法來寫這個?
如果使用的是jQuery,則可以僅使用一個代表查詢字符串選項的對象:
var queryParameters = jQuery.param({
imagePath: _image.source,
saveMode: saveMode,
pageFolderId: pageId,
// ...
});
jQuery將自動對查詢字符串值進行編碼,因此您無需在_image.source
上調用encodeURIComponent
。 參見以獲取更多信息: http : //api.jquery.com/jQuery.param/
您可以使用換行符:
var queryParameters = "imagePath=" + encodeURIComponent(_image.source)
+ "&saveMode=" + saveMode
+ "&pageFolderId=" + pageFolderId
+ "&id=" + pageId
+ "&parent=" + parent
+ "&quality=" + sQuality.value
+ "&commands=" + commandQueue.Serialize();
您可以將所有數據放入數組中,然后執行聯接。 通常,數組的連接要快於連接,但是如果您不多次構建此字符串,則不會有什么不同。
var arr = [];
arr[1] = "item1";
arr[2] = "item2";
arr[3] = "item3";
var result = arr.join('');
這樣寫可以提高可讀性和調試能力。 您可以非常簡單地注釋一個參數。
怎么樣:
function qSerialize(obj){
var q = [];
for (var l in obj) {
if (obj.hasOwnProperty(l)){
q.push(l+'='+obj[l]);
}
}
return q.join('&');
}
var qParamStr = qSerialize(
{
imagePath: encodeURIComponent(_image.source),
saveMode: saveMode,
pageFolderId: pageFolderId,
id: pageId,
parent: parent,
quality: sQuality.value,
commands: commandQueue.Serialize()
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.