Live! real time widget is somehow reordering visitors before display. This could happen at the JS level, as it seems the returned HTML is in the right order.
I see for example in the returned HTML
But the widget on refresh, fed this HTML, will display
Also it gives the illusion that there are new visits since it refreshes with the visual effect, but in fact there hasn't been any new visitor.
Maybe we should rewrite the Live plugin once and for all to fix existing issues:
The new rewrite could read JSON from the API and write the HTML directly, this would simplify the code.
Attachment:
spy.js.patch
Attachment: many requests triggered
many requests.PNG
I suspect that this is a race condition with slow requests. There is a mechanism to stop ajax request once their result is being parsed, but this does not stop ajax requests being sent when the results hasn't arrived yet (due to slow requests). I prepared a small patch for spy.js - can you check if this fixes the issue? (The issue arrises when two requests return almost at the same time and spy.js is inserting the live visitors item by item)
(In [3624]) Refs #1947 Fixes (?) reordering problem. Kuddos halfdan
Does it also block subsequent http requests until the previous ones have been fetched?
Sorry I'm spamming, but to answer myself, no it doesn't appear to block all subsequent requests.
To replicate:
$i =0;
while($i<10000000) $i++; }
just after
private function loadLastVisitorInLastXTimeFromDatabase($idSite, $minutes = 0, $days = 0, $type = false )
{
(In [3628]) Refs #1947 - displays last page view time instead of first page time
Decreasing priority. We have had this bug for too long, but I have the feeling the final fix will involve rewriting the thing to use Json. If someone is keen or has a patch please comment here
(In [3922]) Fixes #2054, #2076, #1947