JS API en generate HTML
Wat ik probeer te doen is een wijze waarop men een JS code in hun site kunnen plakken waarbij een stukje html gegenereerd word met daarin een element wat de laatste prijzen in dit geval laat zien van een bepaald product.
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
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
Ehhhh ... Vertel eens iets meer wat je wilt:
- 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"?
- 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"?
Dagelijks worden de prijzen bijgewerkt.
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.
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.
Nee, de prijzen veranderen 1 keer per dag.
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.
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?
Maar moeten die realtime worden veranderd? Zo niet, dan lijkt AJAX mij overkill...
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.
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 -
Ok, is ajax de beste manier, was eigenlijk mijn vraag?
Dus zoiets als:
Ik neem aan dat er jsonp gebruikt moet worden voor cross browser compatibility ?
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 ?
Ja, maar is AJAX lijkt mij best overkill. Je kan dan net zo goed een statische externe JS inladen via je script-element.
Tip: Zorg ervoor dat die enkel via SSL bereikbaar is.
Tip: Zorg ervoor dat die enkel via SSL bereikbaar is.
Gewijzigd op 24/05/2019 14:52:10 door - Ariën -
Ok, als ik dit dit inlaad:
<script type="text/javascript" src="js.js">
en dan in js.js
Is dit crossbrowser friendly genoeg?
<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. ;-)
ze moeten het toch vam mijn server laden https://test.nl/js.js ??
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.
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 -
Helaas werkt dit niet. Geen console errors niks.
in http://test.nl/js.js
in test.html
<div>
<script type="text/javascript" src="https://www.test.nl/js.js"></script>
</div>
Er word geen enkele elemen aangemaakt
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
Gevonden via de interwebs :
https://www.w3schools.com/js/js_htmldom_nodes.asp
Dit gemaakt :
In js.js bestand :
https://www.w3schools.com/js/js_htmldom_nodes.asp
Dit gemaakt :
In js.js bestand :
Inderdaad netjes dat als de gebruiker zelf kan laten bepalen waar hij zijn prijs wilt neerzetten, aan de hand van een placeholder-divje.




