以下のマークアップでは、while ループは、ページが更新されたとき (ポストバック) に機能します。つまり、while ループの呼び出しが機能しています。ただし、更新しないと更新されません (つまり、データベースの値を更新しても、Web ページに変更が表示されません)。常にデータを取得したい。
なぜそうしないのですか?修正は何ですか?
マークアップ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TestPage</title>
<script type="text/javascript" src="js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/data-import.js"></script>
<script src="js/underscore-min.js"></script>
<script src="js/backbone-min.js"></script>
<script src="js/jquery.dateFormat-1.0.js"></script>
</head>
<body>
<div id="container">
<div id="header">
</div>
<div id="tabContent">
<div id="fileRepositoryTable">
<h2 id="dataImportHeader">File Management</h2>
<table width="100%">
<tr>
<td>
<div id="fileRepository">
<script type="text/template" id="fileRepository-template">
<div id="fileRepositoryTable">
<h2 id="dataImportHeader">File Management</h2>
<table width="100%">
<tr>
<td>
<div id="fileRepository">
<script type="text/template" id="fileRepository-template">
<table id = "fileRepositoryTable">
<thead>
<tr>
<th>File Name</th>
<th>Progress</th>
<th>Time Imported</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</script>
<script type="text/template" id="fileRepositoryrow-template">
<td><%= get('fileName')%></td>
<td><%= get('progress') +" %"%></td>
<td><%= $.format.date(get('timeImported'), 'dd/MM/yyyy hh:mm:ss') %></td>
</script>
</div>
</td>
</tr>
</table>
</div>
*バックボーン コード *
DataImport.FileRepositoryView = Backbone.View.extend({
el: '#fileRepository',
template: _.template($('#fileRepository-template').html()),
initialize: function () {
_.bindAll(this, 'render', 'appendRow');
this.collection.bind('reset', this.render);
},
appendRow: function (fileRepo) {
var repositoryView = new DataImport.FileRepositoryRowView({model: fileRepo});
this.$el.find('tbody').append(repositoryView.render().el);
return this;
},
render: function () {
this.$el.html('');
this.$el.append(this.template(this));
_(this.collection.models).forEach(this.appendRow, this);
return this;
}
});
DataImport.FileRepositoryRowView = Backbone.View.extend({
tagName: 'tr',
template: _.template($('#fileRepositoryrow-template').html()),
initialize: function () {
_.bindAll(this, 'render');
this.render();
},
render: function () {
this.$el.html(this.template(this.model));
return this;
}
});
DataImport.FileRepositoryRows = Backbone.Collection.extend({
model: DataImport.Row,
url: DataImport.rootURL + 'path/getFileRepository',
});
*バックボーン コードを含めるように編集 *