POST
|
So swapping http://js.arcgis.com/3.6/init.js for http://js.arcgis.com/3.6compact/init.js in a test application increases the amount of http requests by 75... from 132 to 207....yet the total amount of data transferred is 1.5Mb in both cases (the increased number of requests makes up for the smaller size of the build itself). I believe this speaks to the broader issue that if the CDN is the promoted way to refer to the API, than there should actually be sensible build layers provided that use idiomatic Dojo build practices to reduce HTTP requests. AMD is a dependency management system which lends itself to good building, but if you don't build AMD slows you down. I think the JS API team may need to look harder at the issue of build layers and what is best provided by a CDN (ie 4-6 larger files vs. 150 small ones). Also, building small AMD files into layers can reduce them 5-10% just due to inlining, reducing total bytes sent. This would likely be a win for server load also, as there would be less concurrent requests to negotiate. Alternatively, providing the uncompressed source or even putting the API on github would provide immense benefit to both developers and the API itself. I have fixed several bugs in my own uncompressed source (when it was accidentally released a view versions ago), and I'd love for an easy way to incorporate these back into the community. Doesn't get much easier than a pull request. Anyhow cheers, and looking forward to more action in this area.
... View more
08-21-2013
10:04 AM
|
0
|
3
|
1213
|
POST
|
You wouldn't be too far amiss adding styles through CSS to the esriPopup class and its children. You could also first create an empty div of height 500px, width 500px that you set as the content of the infowindow, then set the content of that div as your data. Doing this in a callback for a successful request for data should be fairly seamless.
... View more
12-11-2012
09:24 AM
|
0
|
0
|
400
|
POST
|
The variable should be persisting, you are just accessing it before it gets set. When you execute a query, your code continues running and the callback isn't called until the request is ready. This is good, because it doesn't lock your screen when you make a request, but you have to recognize that until your callback is actually called, none of the code within it has taken place. This is what is happening to your variable assignment. The callback of the query is the ideal place to do work that depends on a variable in the query, because you are guaranteed that the query has completed. Thus, nesting your queries in callback functions will allow you to take advantage of asynchronous without running into timing problems.
... View more
10-03-2012
02:27 PM
|
0
|
0
|
648
|
POST
|
The trouble is mostly that I want the Identify to return either an array of point result objects, one for each point of the multipoint, or a multipoint results object. What happens instead is I get a response only for the first point of the multipoint. Identify operations with geometries other than Point aren't especially well-documented, nor is the constrains on the response from the Server REST API. Perhaps next I will try to include multiple point queries in the same request? (though that is not likely to work). I have been working around this problem by making many requests and processing them once all the deferreds resolve.. however, this results in far more overhead than simply making one, more complex request. Seems there should be a more efficient way, though it likely requires some back-end tinkering.
... View more
10-02-2012
09:43 AM
|
0
|
0
|
467
|
POST
|
Code written as follows: var eT=esri.tasks,idTask,idParam, runIT;
idTask= new eT.IdentifyTask("http://example/myMyServer");
idParam= new eT.IdentifyParameters();
idParam.layerOption=eT.IdentifyParameters.LAYER_OPTION_VISIBLE;
idParam.layerIds=[0,1,2,3,4,5,6,7,8,9,10];
idParam.tolerance=1;
idParam.mapExtent=map.extent;
runIT=makeIT(idTask,idParam);
function makeIT(tsk,param){
return function (e){
param.height = map.height;
param.width = map.width;
param.geometryType="esriGeometryMultipoint";
param.geometry=e;
return tsk.execute(param);
}
}
...
var def=runIT(myMultipoint);
(The closure structure is to allow passing static parameters upon creation of the identify task) Single point identify operations work with this code, but multipoint operations only return a single point. (returnGeometry doesn't fix this). The service identified against is a DynamicMapService containing rasters from which I intend to identify pixel values.
... View more
10-01-2012
08:37 AM
|
0
|
3
|
1145
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|