data-quest / EvasysPlugin

Plugin for Stud.IP to manage and provide evaluations with EvaSys by Electric Paper
GNU General Public License v2.0
1 stars 2 forks source link

Rote Icons asynchron laden #24

Open schuettloeffel-elsa opened 3 years ago

schuettloeffel-elsa commented 3 years ago

Moin Rasmus,

ich habe für die LUH mal etwas gebaut, dass die roten Icons asynchron geladen werden, da der API Call an den Evasys Server bei uns. ca. 1 Sekunden pro Veranstaltung braucht und die Veranstaltung-Seite daher sehr sehr lange lädt. Vielleicht kannst du das übernehmen.

Krassmus commented 3 years ago

Moin Philipp!

Cool, dass Du da was zu machst. Ich muss sagen, ich muss mir erst überlegen, ob das wirklich etwas für alle ist. Grundsätzlich wird das Problem hier ja nur aufgeschoben und nicht aufgehoben. Das führt dazu, dass die Icons dann erst eine Sekunde später auftauchen (es sei denn, die Abfrage ist im Cache). Das könnte die User-Experience verschlechtern. Zudem muss man noch mal prüfen, ob dadurch die Anzahl der Abfragen auf EvaSys mehr werden. So ganz sicher bin ich mir da noch nicht. An sich wird ja immer noch gecached. Aber wenn die Requests für die Icons alle gleichzeitig vom Browser losgelassen werden, kann es sein, dass der Cache nicht greift und bei beispielsweise vier aktiven Veranstaltungen mit aktivem Evaluationszeitraum auch vier Requests an EvaSys abgeschickt werden und nicht eine wie zuvor (die ja schon aufwendig genug ist für EvaSys).

Auch der Browsercache kann da mit rein spielen. Du hast bei der Ausgabe der Icons keine HTTP-Header zu e-Tags und anderen Cache-Mechanismen drin. Ich bin mir nicht sicher, welche Browsercache Mechanismen da am besten sein werden. Aber ganz ohne solche Header ist es vermutlich auch nicht sinnvoll. Aber wenn man den Browsercache falsch mit einbaut, kann es sein, dass einem die falsche Icon-Farbe angezeigt wird, weil der Request gar nicht bis zum PHP durchkommen.

schuettloeffel-elsa commented 3 years ago

Hei Rasmus!

Grundsätzlich wird das Problem hier ja nur aufgeschoben und nicht aufgehoben. Das führt dazu, dass die Icons dann erst eine Sekunde später auftauchen (es sei denn, die Abfrage ist im Cache). Das könnte die User-Experience verschlechtern.

Nee also unser Problem war ja dass die VA Seite ewig lädt, das ist damit ja behoben. Dass die Icons später auftauchen finde ich nicht so schlimm, man könnte ja vorher auch ein Lade-Icon (eine Uhr oder sowas) nutzen damit ma sieht dass da noch was kommt.

Zudem muss man noch mal prüfen, ob dadurch die Anzahl der Abfragen auf EvaSys mehr werden. So ganz sicher bin ich mir da noch nicht. An sich wird ja immer noch gecached. Aber wenn die Requests für die Icons alle gleichzeitig vom Browser losgelassen werden, kann es sein, dass der Cache nicht greift und bei beispielsweise vier aktiven Veranstaltungen mit aktivem Evaluationszeitraum auch vier Requests an EvaSys abgeschickt werden und nicht eine wie zuvor (die ja schon aufwendig genug ist für EvaSys).

Hm mist, das war mir nicht klar dass du da so eine Caching Mechanik drin hast, da hast du vermutlich recht dass dann mehr Abfragen als vorher an den Evasys Server gehen. Uns gings wie gesagt ausschließlich darum dass die VA Seite so lange geladen hat. Aber wenn der Evasys Server damit so schlecht umgehen kann, könnte man ja immer noch die Red Icons ausschalten.

Auch der Browsercache kann da mit rein spielen. Du hast bei der Ausgabe der Icons keine HTTP-Header zu e-Tags und anderen Cache-Mechanismen drin. Ich bin mir nicht sicher, welche Browsercache Mechanismen da am besten sein werden. Aber ganz ohne solche Header ist es vermutlich auch nicht sinnvoll. Aber wenn man den Browsercache falsch mit einbaut, kann es sein, dass einem die falsche Icon-Farbe angezeigt wird, weil der Request gar nicht bis zum PHP durchkommen.

Ja das könnte man ja noch easy einbauen :)