私はExcel online add-in
の下にイベントハンドラを書いています。ボタンactivate
によって起動され、ユーザーが別のセルまたは範囲をクリックすると、そのアドレスはテキストエリアmyTextArea
に書き込まれます。すべてが機能します。イベントハンドラをシームレスにするには?
ただし、新しいセルが選択されると、緑色の読み込みシンボルがフォーカスの近くに表示されます。 WORKING...
がExcelの下部に表示されます。ほぼ0.5 second
になります。
このような簡単な操作には時間がかかることに驚いています。このイベントハンドラをより速くすることが可能かどうかは誰にも知られていますか?そうでなければ、これをシームレスにするためにイベント処理以外の手段がありますか?
(function() {
"use strict";
Office.initialize = function(reason) {
$(document).ready(function() {
app.initialize();
$('#activate').click(addSelectionChangedEventHandler);
});
}
;
function addSelectionChangedEventHandler() {
Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, MyHandler);
}
function MyHandler(eventArgs) {
doStuffWithNewSelection();
}
function doStuffWithNewSelection() {
Excel.run(function(ctx) {
var selectedRange = ctx.workbook.getSelectedRange();
selectedRange.load(["address"]);
return ctx.sync().then(function() {
write(selectedRange.address)
})
}).then(function() {
console.log("done");
}).catch(function(error) {
...
});
}
function write(message) {
document.getElementById("myTextarea").value = message;
}
})();