私はXPagesアプリケーションでApache Poi経由でpowerpointsファイルを作成しています。私は繰り返し制御を有するのXPageに私のXagentをスピードアップするにはどうしたらいいですか?
、繰り返しの各行は、仕事をしていません「xagent」(SSJS)を開始ボタンを表示します。
<xp:button id="button7" value="Download">
<xp:eventHandler event="onclick" submit="true"
refreshMode="norefresh">
<xp:this.action><![CDATA[#{javascript:sessionScope.docId = obj.unid;
sessionScope.slideType = "TITLE_AND_CONTENT";
sessionScope.fieldList = ["refName","refSub","refStrength","refWeakness"];
context.redirectToPage("StreamPresentation.xsp");}]]></xp:this.action>
</xp:eventHandler></xp:button>
各行のエクスポートを開始するまでに時間がかかることがわかりました。ログからの「時間報告」は次のとおりです。
2016-09-26 16:57:05 HTTP JVM: time:2016-09-26 16:57
2016-09-26 16:57:05 HTTP JVM: docId:6AD84C823BD8A52FC125803A0051BE49
2016-09-26 16:57:38 HTTP JVM: time:2016-09-26 16:57
2016-09-26 16:57:38 HTTP JVM: docId:660E0CC12C3E1046C1258039006AA394
2016-09-26 16:57:58 HTTP JVM: time:2016-09-26 16:57
2016-09-26 16:57:58 HTTP JVM: docId:C8DD8933E26057C3C1258039006A3ED0
どのように処理を高速化できますか?
マイxagentコードは以下のように多少なりますアプリケーションのすべての上速度を決定する多くの多くの要因がある
importPackage(java.lang);
importPackage(org.apache.poi.xslf.usermodel);
//getting sessionvariables
var sessSlide = sessionScope.slideType;
var docId = sessionScope.docId;
print("time:" + @Now());
print("docId:" + docId);
var sessFields = sessionScope.fieldList;
var doc:NotesDocument;
doc = database.getDocumentByUNID(docId);
var ppt: XMLSlideShow = new XMLSlideShow();
/*
* creating slides here...
/*
//The Faces Context global object provides access to the servlet environment via the external content
var extCont = facesContext.getExternalContext();
//The servlet's response object provides control to the response object
var pageResponse = extCont.getResponse();
//Get the output stream to stream binary data
var pageOutput = pageResponse.getOutputStream();
//Set the content type and headers
pageResponse.setContentType("application/vnd.openxmlformats-officedocument.presentationml.presentation");
pageResponse.setHeader("Cache-Control", "no-cache");
pageResponse.setHeader("Content-Disposition", "inline; filename=" + fileName);
ppt.write(pageOutput);
pageOutput.flush();
pageOutput.close();
facesContext.responseComplete();
より具体的には、それが互いの後xagentをトリガーにかかる時間が数字ですか?私の場合、私は入力と出力ストリームを持っています。 –
上記のすべての要因が影響を与えます。サーバーのビジー状態に依存します。セッション変数に依存しない場合、Ajaxを並行して起動することができます – stwissel