的設置:
我現在用的是javascript API v. 2.8 from ESRI,它本身使用Dojo工具包V 1.6。我在亞馬遜的EC2上的Windows上運行ArcGIS Server v. 10.1。ESRI異步的JavaScript打印
我可以成功執行JavaScript的PrintTask,將JSON發佈到我的服務器,該服務器運行一個進程並將PDF返回給客戶端瀏覽器。但是這個請求是同步並且可能需要一兩分鐘的時間,導致Heroku超時併發生H12錯誤。
問題:
當我切換[]異步複選框ON在ArcGIS服務器上,我PrintTask返回:
{"error":{"code":500,"message":"Error performing execute operation","details":[]}}
我不知道在哪裏可以從這裏走。任何人都有任何在ArcGIS Server上運行異步打印任務的例子或經驗嗎?
printTask的javascript如下。有沒有辦法重新寫這個JavaScript更異步,或「非阻塞」?
代碼
(精簡爲簡潔起見)
dojo.require("esri.tasks.PrintTask");
function Print() {
var printTool = this;
this.executePrint = function(){
var params = new esri.tasks.PrintParameters();
params.map = map;
params.template = selectedTemplate;
printTask = new esri.tasks.PrintTask(printUrl, {async: true});
printTask.execute(params, printTool.printComplete, printTool.printError);
};
this.printComplete = function(result){
dojo.place("<div><a href='" + result.url + "'></a></div>", printForm, "last");
};
this.printError = function(err){
dojo.byId("printJob").innerHTML = err;
};
}
2.8升級到3.2解決了這一問題。似乎{async:true}參數在2.8上沒有什麼區別,但是在3.2上有效。 – ballPointPenguin