wacht met refresh tot tabblad actief is geweest
ik heb een mysql gebaseerde verzoekserver gemaakt deze draaid perfect
en heb er een metta refresh opgezet van 1 minuut.
hij controleert of er een nieuw bericht is via php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
als er een nieuw bericht is gaat de titel knipperen.
probleem 1 is dat hij nu na een minuut (refresh) niet meer knippert omdat dan de php controle weer gelijk is en wil eigenlijk niet de dj op een button laten klikken van "jaja ik heb het gezien"
probleem 2 is dat hij ook echt een minuut knippert ook als je het na 10 seconden ziet
ben al bezig geweest met .blur en .focus maar heb de ballen verstand van javascript...
dus nu zoek ik iets van een "tabblad is actief dus je mag uit" scriptje en iets van een "wacht met refreshen want tabblad is nog niet actief geweest na het nieuwe bericht" scriptje
alvast bedankt!
Deze website (Satirische video's uit Frankrijk, al 20 jaar bezig...) detecteert of het tabblad actief is.
Symptomen: je kan de reclame-filmpjes niet skippen; en als je ondertussen een andere window/tab opent, pauzeert de reclame
http://www.canalplus.fr/c-divertissement/pid1787-c-groland.html
Ik zou zelf eens moeten uitzoeken hoe ze het doen.
Mijn eerste idee, is dat ze constant peilen naar de muiscoördinaten (of zoiets); en daaruit kunnen afleiden dat de muis buiten het window staat.
Ik kan me hier volledig vergissen.
Gewoon een focus/blur op window zetten
(dat ik daar niet eerder aan gedacht had ...)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function($) {
$(window).blur(function(e) {
$('#message').html('niet actief');
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
</script>
<h3>Hello</h3>
<div id="message">actief</div>
<script>
$(document).ready(function($) {
$(window).blur(function(e) {
$('#message').html('niet actief');
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
</script>
<h3>Hello</h3>
<div id="message">actief</div>
Daarom zou ik het volgende willen vragen.
Hoe gebruik ik deze script van u?
Mag ik het volgende begrijpen er van.
- Dit deel in een als voorbeeld message.php zetten.
- In de <div> zet ik dan een php script die kijkt of er een bericht in database staat.
- Zodra in de database een bericht bij is gekomen word de <div> zichtbaar.
Begrijp ik zo uw stukje code goed?
Gewijzigd op 01/02/2013 22:57:45 door remco schrubben
Toevoeging op 01/02/2013 23:18:37:
zou eigelijk zoiets moeten worden (als nieuwbericht = true; en tabblad is inactief laat titel knipperen en zet metta refresh op pauze totdat tabblad actief is.)
dit is alvast wat maar hoe maak ik onderstaande code werkend?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function($) {
$(window).blur(function(e) {
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
setInterval('wijzigTitel()', 500);
function wijzigTitel()
{
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
</script>
<script>
$(document).ready(function($) {
$(window).blur(function(e) {
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
setInterval('wijzigTitel()', 500);
function wijzigTitel()
{
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
</script>
Toevoeging op 01/02/2013 23:40:30:
heb hier een javascript auto refresh scriptje:
head?
Code (php)
1
2
3
4
5
2
3
4
5
var timer = null;
function auto_reload()
{
window.location = 'http://www.site.nl/pagina.extensie';
}
function auto_reload()
{
window.location = 'http://www.site.nl/pagina.extensie';
}
body!
Toevoeging op 01/02/2013 23:51:01:
werkt volgends mij niet ???
snap niets van javascript hah heeellllluuuuuppppp :-P
Gewijzigd op 01/02/2013 23:23:06 door Joop Slabbekoorn
Remco schrubben op 01/02/2013 21:35:36:
Hoe gebruik ik deze script van u?
Eventueel een ander topic aanmaken
EDIT:
Ah, okay; samen met mijn laatste suggestie zouden beide ongeveer het zelfde moeten opleveren.
----------
Joop Slabbekoorn op 01/02/2013 22:06:26:
...hoe maak ik onderstaande code werkend?
setInterval:
Ofwel geef je de functienaam, zonder quotes, en zonder () ;
ofwel een functie-definitie. Dito voor setTimeout
setInterval(function() {
wijzigTitel();
},
500
);
of dus:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).ready(function($) {
$(window).blur(function(e) {
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
function wijzigTitel() {
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
setInterval(wijzigTitel, 500);
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
$(window).blur(function(e) {
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
function wijzigTitel() {
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
setInterval(wijzigTitel, 500);
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
Dat was de bedoeling?
------
Joop Slabbekoorn op 31/01/2013 12:22:03:
... en heb er een metta refresh opgezet van 1 minuut.
hij controleert of er een nieuw bericht is via php ...
hij controleert of er een nieuw bericht is via php ...
Zullen we dat wat eleganter oplossen? Met een Ajax request; die laadt dan de nieuwe items zonder dat de pagina wordt ververst
Gewijzigd op 02/02/2013 02:14:45 door Kris Peeters
Kris Peeters op 02/02/2013 02:04:58:
Dat was de bedoeling?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/avascript">
$(document).ready(function($) {
$(window).blur(function(e) {
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
function wijzigTitel() {
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
setInterval(wijzigTitel, 500);
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
</script>
$(document).ready(function($) {
$(window).blur(function(e) {
var origTitle = document.title;
var hiliteTitle = 'NIEUW VERZOEKJE!';
var toggle = false;
function wijzigTitel() {
document.title = toggle ? origTitle : hiliteTitle;
toggle = !toggle;
}
setInterval(wijzigTitel, 500);
});
$(window).focus(function(e) {
$('#message').html('actief');
});
});
</script>
Dat was de bedoeling?
als ik het zo zie wel denk ik maar het werkt niet
Joop Slabbekoorn op 31/01/2013 12:22:03:
... en heb er een metta refresh opgezet van 1 minuut.
hij controleert of er een nieuw bericht is via php ...
hij controleert of er een nieuw bericht is via php ...
Quote:
Zullen we dat wat eleganter oplossen? Met een Ajax request; die laadt dan de nieuwe items zonder dat de pagina wordt ververst
graag zelfs! maar omdat ik geen verstand van javascript heb en het zaterdag toch min of meer werkend wou hebben... heb ik nu dus controle via php.
zal nog een keer uitleggen: gaat om een verzoekserver die als tabblad open staat maar waar de dj niet constant naar kijkt. eerst zat er een refresh knop op maar dan kwam het voor dat wanneer de luisteraar een verzoekje deed de dj pas na een half uur refresht en dan na een kwartier het verzoekje afhandeld. het streven is om toch wel binnen een kwartier het verzoek af te handelen. dus ik dacht autorefresh en een checker wat ik nu zo doe:
--> lees aantalregels.txt en zet het in $regels -> check aantal tabelregels en zet het in $numrows -> vergelijk $regels met $numrows -> als het gelijk is -> ga verder -> anders <javascript-wijzigtitel> -> schrijf $numrows naar aantalregels.txt <--
dus vandaar ook de refresh, elke minuut voert hij dit uit. en dat werkt goed maar is niet DE manier natuurlijk...
vandaar mijn vraag naar een javascriptje dat:
1: berichten checkt en erbij zet
2: als er een nieuw verzoek is titel laat knipperen totdat het gezien is.
3: graag zelfs ook nog het/de nieuwe verzoekje(s) een andere kleur geven totdat er een muis overheen is gegaan.(dit lukt alleen als hij niet meer refresht
4: liefst ook nog titel icoon mee laten knipperen...
Toevoeging op 02/02/2013 13:30:30:
Wouter J op 02/02/2013 10:22:25:
Of je gebruikt de gloednieuwe Page Visibility API, merk op dat dit nog niet overal ondersteund wordt
oke... en hoe gebruik ik dat in mijn geval? snap er niets van...
in ieder geval al bedankt voor de hulp tot nu toe...
Gewijzigd op 02/02/2013 14:59:47 door Joop Slabbekoorn