以下は、実装方法の概要を説明するのに十分なはずです。
ボタンをクリックすると、DbStatsController getStats関数からデータを取得するjavascript関数が呼び出されます。
作業中に表示されるスピナーアイコンは、showSpinner関数で表示/非表示にされるデフォルトでは非表示になっています(&)。
エラーは、resultDivというidのdivに表示され、デモの結果がJSONに返されます。
dbStats\index
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main" />
<script type="text/javascript">
function showSpinner(visible) {
if (visible) $('#spinner').show();
else $('#spinner').hide();
}
$(document).ready(function(){
$('#dbStats').click(function() {
$.ajax({
url: "${g.createLink(controller: 'dbStats', action: 'getStats')}",
type: "get",
timeout: 5000,
success: function (data) {
$('#resultDiv').html(data)
},
error: function(jqXHR, textStatus, errorThrown) {
$("#resultDiv").addClass('alert alert-danger').text('Unable to get stats ' + errorThrown)
},
beforeSend: function() { showSpinner(true) },
complete: function() { showSpinner(false) }
});
})
});
</script>
</head>
<body>
<asset:image src="spinner.gif" id="spinner" style="display: none" />
<div id="resultDiv"></div>
<g:form>
<button type='button' id="dbStats">Get DB stats</button>
</g:form>
</body>
DbStatsController
import grails.converters.JSON
class DbStatsController {
def index() { }
def getStats() {
render ([stat1: 123, stat2: 321]) as JSON
}
}
あなたは、プログレスバー、または現在作業シンボルの何らかの形でAJAXを使用して検討していますか? –
私はこれが初めてです。私はどのようにこれを行うか分かりません。プログレスバーは素晴らしいだろう:)あなたが私を指すことができる任意の実例? –