JS API en generate HTML
JS meer ondersteund worden en het moet cross browser zijn.
Wat is de beste manier wat werkt op de meeste browsers? Gewoon een ajax call?
Alvast bedankt
- Een veldje in je pagina dat constant bijgewerkt wordt met de laagste prijs (die dus kan variëren in de tijd)?
- Moet de gebruiker "iets doen" (op een knop drukken) om daarna pas de laagste prijs op te halen?
- Hoe vaak wisselt "de laagste prijs"?
Dus ik wil dat elke keer eigenlijk dat een bezoekers de pagina bezoekt en een server request via ajax bijv word gedaan om de huidige prijzen te laden.
Is dat niet een beetje overdreven? Of veranderen de prijzen met een dermate hoge frequentie dat je het realtime wilt aanpassen? Je kan net zo goed een JS-file genereren met een statische prijs, die je serverside aanpast.
Er word nu al een statishe html gecreerd die serverside na een druk op de knop deze html genereerd en mensen kunnen die in blogs op andere websites plaatsen.
Een dag later zijn de prijzen anders, dus kloppen die niet meer.
Ik wil dus dat men bij elke refresh of bezoek via js een request doet om een nieuw lijst te tonen.
Kun je dan niet gewoon 1x/dag die HTML opnieuw genereren?
Je kan prima de prijzen statisch naar de bezoeker leveren. Zodra ze tussentijds veranderd zijn, zijn ze na een refresh weer vernieuwd.
Desnoods kan je de dagdatum ook meegeven voor de duidelijkheid.
Gewijzigd op 24/05/2019 13:34:20 door - Ariën -
Dus zoiets als:
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
$.ajax({
url: "https://testserver.nl?datum=19-05-25",
dataType: "jsonp",
success: function( response ) {
console.log( response ); // server response
// html genereren
$("#element").append( response);
Maar ik wil het opdezelfde locatie
var spanNode = document.createElement('span');
var textNode = document.createTextNode('there.');
spanNode.appendChild( textNode );
var ele = document.currentScript; //get current script element
ele.parentNode.insertBefore(spanNode,ele); //append the span before the script
}
});
url: "https://testserver.nl?datum=19-05-25",
dataType: "jsonp",
success: function( response ) {
console.log( response ); // server response
// html genereren
$("#element").append( response);
Maar ik wil het opdezelfde locatie
var spanNode = document.createElement('span');
var textNode = document.createTextNode('there.');
spanNode.appendChild( textNode );
var ele = document.currentScript; //get current script element
ele.parentNode.insertBefore(spanNode,ele); //append the span before the script
}
});
Ik neem aan dat er jsonp gebruikt moet worden voor cross browser compatibility ?
Tip: Zorg ervoor dat die enkel via SSL bereikbaar is.
Gewijzigd op 24/05/2019 14:52:10 door - Ariën -
<script type="text/javascript" src="js.js">
en dan in js.js
Code (php)
1
2
3
2
3
var spanNode = document.createElement('span');
var textNode = document.createTextNode('html gegenereerde code');
spanNode.appendChild( textNode );
var textNode = document.createTextNode('html gegenereerde code');
spanNode.appendChild( textNode );
Is dit crossbrowser friendly genoeg?
Ik denk dat anderen geen js.js op hun server hebben staan. Dus gebruik een absolute URL. ;-)
Dan moet je dus die URL ook meegeven.
Quote:
Dus gebruik een absolute URL
Juist maar waarom dan een absolute url ?
En om te zorgen dat het JavaScript-bestand niet wordt gecached zou je er een random string achteraan kunnen/moeten gooien.
Daniel van Seggelen op 24/05/2019 16:53:08:
Juist maar waarom dan een absolute url ?
Quote:
Dus gebruik een absolute URL
Juist maar waarom dan een absolute url ?
Zie ook:
- Ariën - op 24/05/2019 15:11:56:
Ik denk dat anderen geen js.js op hun server hebben staan. Dus gebruik een absolute URL. ;-)
- Ariën - op 24/05/2019 15:42:02:
Dit is toch de code die je gebruikers op hun site kunnen invoeren?
Dan moet je dus die URL ook meegeven.
Dan moet je dus die URL ook meegeven.
Gewijzigd op 24/05/2019 18:07:04 door - Ariën -
in http://test.nl/js.js
Code (php)
1
2
3
2
3
var spanNode = document.createElement('div');
var textNode = document.createTextNode('test');
spanNode.appendChild( textNode );
var textNode = document.createTextNode('test');
spanNode.appendChild( textNode );
in test.html
<div>
<script type="text/javascript" src="https://www.test.nl/js.js"></script>
</div>
Er word geen enkele elemen aangemaakt
Inderdaad netjes dat als de gebruiker zelf kan laten bepalen waar hij zijn prijs wilt neerzetten, aan de hand van een placeholder-divje.