het Pushen van nieuwe gegevens
Is het mogelijk om de nieuwe gegevens in een database te pushen naar de client-side? Zoja, welke taal is dit het handigst in. Ik zat zelf te denken aan AJAX of JQuery.
Met 'ajax' is het pullen. Niet pushen. Pushen raad ik je niet aan, aangezien je dan een php script hebt wat heel lang draait.
Php is daar nooit voor bedoelt. Een aantal minuten kan een script wel draaien, maar niet langer. Dan kom je in de knoop met dat het geheugen vol raakt, of dat er gewoon random fouten ontstaan.
IRC bots in php geschreven zijn om dezelfde rede onzin.
Php is daar nooit voor bedoelt. Een aantal minuten kan een script wel draaien, maar niet langer. Dan kom je in de knoop met dat het geheugen vol raakt, of dat er gewoon random fouten ontstaan.
IRC bots in php geschreven zijn om dezelfde rede onzin.
Dus pullen kan wel? Ik was van plan een soort chatsysteem te maken die kan integreren in de meeste CMS's. Is het dan handiger om een refresh script te maken die gewoon de div refresht waarin de gegevens worden opgehaald. Of juist door middel van pullen?
Gewijzigd op 01/01/1970 01:00:00 door Stefan
Ik denk dat je je eens in de materie moet verdiepen....
Over het algemeen wordt er via XHR request een div geupdate.
Dat is goed te doen voor een chatscript.
Het voordeel van ajax is dat het php script maar eventjes draait.
Over het algemeen wordt er via XHR request een div geupdate.
Dat is goed te doen voor een chatscript.
Het voordeel van ajax is dat het php script maar eventjes draait.
Ik heb ook nog nooit met Ajax gewerkt, dus vandaar dat ik dit doe. Om mijn talenpakket uit te breiden met Ajax. Maar toch bedankt voor je reactie. Ik zal mij eerst wat meer verdiepen in Ajax.
Let wel op, ajax is dus geen taal. Het is gewoon een afkorting voor:
'Asynchronous Javascript + Xml'.
Als je tutorials door leest e.d. dan zul je het wel snappen.
'Asynchronous Javascript + Xml'.
Als je tutorials door leest e.d. dan zul je het wel snappen.
Ja, dat wist ik al. Maar heb o.a me nog niet echt verdiepts in javascript. De basics ken ik al. Maar wil graag wat meer leren. Ik gebruik w3schools voor al mijn leerstof =p
Op w3schools staat erg veel info. Een goede plek ter referentie en om van te leren.
Zoals je eerder al aangaf, jQuery te gebruiken is erg handig. Met jQuery hoef je de meet voorkomende dingen niet zelf opnieuw te schrijven. Ook is het gebruik dan vaak versimpelt. (Zij hebben al de code voor een request geschreven. Jij moet alleen opgeven wat voor type request je doet.)
Zoals je eerder al aangaf, jQuery te gebruiken is erg handig. Met jQuery hoef je de meet voorkomende dingen niet zelf opnieuw te schrijven. Ook is het gebruik dan vaak versimpelt. (Zij hebben al de code voor een request geschreven. Jij moet alleen opgeven wat voor type request je doet.)
Ik denk dat ik hier iets fout doe. Kom er alleen niet op:
En gethint.php:
Error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\web\apache\htdocs\ajax\suggestions\gethint.php on line 41
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function showHint(str) {
if(str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
}
xmlhttp = GetXmlHttpObject();
if(xmlhttp == null) {
alert("Your browser is not compatible with this website.\r\nPlease, I recommend using FireFox or Google Chrome");
return;
}
var url = "gethint.php";
url = url+"?q="+str;
url = url+"&sid="+Math.random();
xmlhttp.onreadystatechange = stateChanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function GetXmlHttpObject() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject) {
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function stateChanged() {
if (xmlhttp.readyState==4) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
</script>
</head>
<body>
<form>
First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
<head>
<script type="text/javascript">
var xmlhttp;
function showHint(str) {
if(str.length == 0) {
document.getElementById("txtHint").innerHTML = "";
return;
}
xmlhttp = GetXmlHttpObject();
if(xmlhttp == null) {
alert("Your browser is not compatible with this website.\r\nPlease, I recommend using FireFox or Google Chrome");
return;
}
var url = "gethint.php";
url = url+"?q="+str;
url = url+"&sid="+Math.random();
xmlhttp.onreadystatechange = stateChanged;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
}
function GetXmlHttpObject() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject) {
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
function stateChanged() {
if (xmlhttp.readyState==4) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
</script>
</head>
<body>
<form>
First Name: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<p>Suggestions: <span id="txtHint"></span></p>
</body>
</html>
En gethint.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
$q = $_GET['q'];
if(strlen($q) > 0) {
$hint = "";
for($i=0; i<count($a); $i++) {
if(strtolower($q) == strtolower(substr($a[$i], 0, strlen($q)))) {
if($hint == "") {
$hint = $a[$i];
} else {
$hint = $hint.", ".$a[$i];
}
}
}
}
if($hint == "") {
$response = "No Suggestion Found";
} else {
$resposne = $hint;
}
echo $response;
?>
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
$q = $_GET['q'];
if(strlen($q) > 0) {
$hint = "";
for($i=0; i<count($a); $i++) {
if(strtolower($q) == strtolower(substr($a[$i], 0, strlen($q)))) {
if($hint == "") {
$hint = $a[$i];
} else {
$hint = $hint.", ".$a[$i];
}
}
}
}
if($hint == "") {
$response = "No Suggestion Found";
} else {
$resposne = $hint;
}
echo $response;
?>
Error: Fatal error: Maximum execution time of 30 seconds exceeded in C:\web\apache\htdocs\ajax\suggestions\gethint.php on line 41
Lijn 41 mist er een var het $ teken..
BTW, de foutmelding geeft zelf al aan dat hij blijft steken op lijn 41, dus had je zelf al eens die lijn kunnen bekijken he..
BTW, de foutmelding geeft zelf al aan dat hij blijft steken op lijn 41, dus had je zelf al eens die lijn kunnen bekijken he..




