2016-05-09 7 views
0

Wie oft rendert das Spiel die Seite? Wie sage ich bedingt haben, wie folgendPlay: Wird die Seite bei Variablenänderungen in den Ansichten erneut gerendert?

@if(viewModel.record.isRunning) { 
    <h5> 
     <center><i> 
      <div id="database"></div> 
     </i></center> 
    </h5> 
} 

irgendwann Wenn viewModel.record.isRunning Änderungen würden es wieder machen/aktualisieren Sie die Seite? Meine bisherige Beobachtung ist, dass die Seite nicht aktualisiert wird (was für mich überraschend war). Wenn diese Beobachtung wahr ist (d. H. Ich habe keine anderen Fehler), werden irgendwelche Vorschläge gemacht, wie man das Rendern/Aktualisieren durchführt.

+1

Warum würden Sie denken, die Seite aktualisiert wird? Das Rendering erfolgt auf der Serverseite, die Template-Engine ist keine clientseitige Technologie wie angular. – ceran

Antwort

4

Es kann helfen, wenn Sie erklären, warum Sie die Seite erwarten aktualisiert werden. Der Browser stellt eine Anfrage an einen Server für eine Seite. Play empfängt diese Anforderung, rendert eine Seite und sendet sie an den Browser. Der Browser rendert dann diese Seite. Jede Statusaktualisierung auf dem Server wird nicht im Browser angezeigt, es sei denn, der Browser stellt eine andere Anforderung zum Abrufen bereit.

Wenn Aktualisierungen auf der Serverseite sofort im Browser angezeigt werden sollen, müssen Sie einen Ereignisstrom vom Server zum Browser einrichten, auf den der Browser dann reagieren kann. Dies geschieht häufig mit WebSockets, bedeutet aber, dass auf der Serverseite jedes Mal, wenn sich etwas ändert, ein Ereignis über den WebSocket des Browsers gesendet werden muss - Sie können nicht erwarten, dass eine Variable dies auslöst. Anschließend müssen Sie eine JavaScript-Anwendung auf der Browserseite implementieren, die diese Ereignisse empfängt, und die Benutzeroberfläche entsprechend aktualisieren.

0

Wiedergabe macht die Ansicht jedes Mal (genau bei jede Anfrage), es sei denn, Sie irgendeine Art von Caching verwenden. Es kann eingebaut sein Play-Cache-System oder vielleicht einige Persistenz-Layer-Cache, der die Ansichten unverändert, aber es gibt keine Möglichkeit, in Ihrer Frage zu raten.