Stop polling. Use SocketIO!

This commit is contained in:
Patrick Jentsch
2019-08-23 15:05:01 +02:00
parent 3d8b8e9182
commit 7aef3de81d
12 changed files with 58 additions and 5120 deletions

View File

@ -11,33 +11,31 @@
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='fonts/material-icons/material-icons.css') }}">
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='css/materialize.min.css') }}" media="screen,projection"/>
<link type="text/css" rel="stylesheet" href="{{ url_for('static', filename='css/opaque.css') }}" media="screen,projection"/>
{% if current_user.is_authenticated %}
<script>
var corpora = [
{% for corpus in current_user.corpora.all() %}
{{ corpus.to_dict()|tojson }},
{% endfor %}
];
var jobs = [
{% for job in current_user.jobs.all() %}
{{ job.to_dict()|tojson }},
{% endfor %}
];
</script>
<script src="{{ url_for('static', filename='js/jsondiffpatch.umd.js') }}"></script>
<script src="{{ url_for('static', filename='js/polls.js') }}"></script>
{% endif %}
<script src="{{ url_for('static', filename='js/socket.io.js') }}"></script>
<script type="text/javascript" charset="utf-8">
var socket = io();
socket.on('connect', function() {
socket.emit('my event', {data: 'I\'m connected!'});
});
</script>
<script src="{{ url_for('static', filename='js/list.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/utils.js') }}"></script>
<script src="{{ url_for('static', filename='js/list.js') }}"></script>
<script src="{{ url_for('static', filename='js/list.utils.js') }}"></script>
<script src="{{ url_for('static', filename='js/CorpusList.js') }}"></script>
<script src="{{ url_for('static', filename='js/JobList.js') }}"></script>
<script>
var corpora;
var corporaSubscribers = [];
var jobs;
var jobsSubscribers = [];
</script>
<script>
var socket = io();
socket.on('corpora', function(msg) {
corpora = JSON.parse(msg.data);
for (subscriber of corporaSubscribers) {subscriber.init();}
});
socket.on('jobs', function(msg) {
jobs = JSON.parse(msg.data);
for (subscriber of jobsSubscribers) {subscriber.init();}
});
</script>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>

View File

@ -35,7 +35,7 @@
page: 4,
pagination: true,
valueNames: ["description", "title", {data: ["id"]}]}
var corpusList = new CorpusList("corpus-list", corpusListOptions, true);
var corpusList = new CorpusList("corpus-list", corpusListOptions);
corpusList.on("filterComplete", List.updatePagination);
corpusList.on("searchComplete", List.updatePagination);
</script>
@ -78,7 +78,7 @@
page: 4,
pagination: true,
valueNames: ["description", "title", {data: ["id"]}]}
var jobList = new JobList("job-list", jobListOptions, true);
var jobList = new JobList("job-list", jobListOptions);
jobList.on("filterComplete", List.updatePagination);
jobList.on("searchComplete", List.updatePagination);
</script>
@ -135,5 +135,4 @@
<li><a href="{{ url_for('services.nlp') }}"><i class="material-icons">format_textdirection_l_to_r</i>NLP</a></li>
<li><a href="{{ url_for('services.ocr') }}"><i class="material-icons">find_in_page</i>OCR</a></li>
</ul>
{% endblock %}