Ticket #410: multiUrls-fix.patch
| File multiUrls-fix.patch, 2.7 kB (added by euzuro, 2 years ago) |
|---|
-
lib/OpenLayers/Layer/HTTPRequest.js
old new 12 12 OpenLayers.Layer.HTTPRequest.prototype = 13 13 OpenLayers.Class.inherit( OpenLayers.Layer, { 14 14 15 /** @type String */ 15 /** This is either an array of url strings or a single url string. 16 * 17 * @type Array(String) or String */ 16 18 url: null, 17 19 18 20 /** Hashtable of key/value parameters 21 * 19 22 * @type Object */ 20 23 params: null, 21 24 … … 32 35 * @constructor 33 36 * 34 37 * @param {String} name 35 * @param { String} url38 * @param {Array(String) or String} url 36 39 * @param {Object} params 37 40 * @param {Object} options Hashtable of extra options to tag onto the layer 38 41 */ … … 117 120 * @type String 118 121 */ 119 122 getFullRequestString:function(newParams, altUrl) { 123 124 // if not altUrl passed in, use layer's url 125 var url = altUrl || this.url; 120 126 121 // use layer's url unless altUrl passed in122 var url = (altUrl == null) ? this.url : altUrl;123 124 127 // create a new params hashtable with all the layer params and the 125 128 // new params together. then convert to string 126 129 var allParams = OpenLayers.Util.extend(new Object(), this.params); 127 130 allParams = OpenLayers.Util.extend(allParams, newParams); 131 var paramsString = OpenLayers.Util.getParameterString(allParams); 132 133 // if url is not a string, it should be an array of strings, 134 // in which case we will deterministically select one of them in 135 // order to evenly distribute requests to different urls. 136 // 137 if (url instanceof Array) { 138 url = this.selectUrl(paramsString, url); 139 } 140 128 141 // ignore parameters that are already in the url search string 129 142 var urlParams = 130 143 OpenLayers.Util.upperCaseObject(OpenLayers.Util.getArgs(url)); … … 133 146 delete allParams[key]; 134 147 } 135 148 } 136 varparamsString = OpenLayers.Util.getParameterString(allParams);149 paramsString = OpenLayers.Util.getParameterString(allParams); 137 150 138 // if url is not a string, it should be an array of strings,139 // in which case we will deterministically select one of them in140 // order to evenly distribute requests to different urls.141 if (url instanceof Array) {142 url = this.selectUrl(paramsString, url);143 }144 145 151 // requestString always starts with url 146 152 var requestString = url; 147 153
