Hallo,

Ik heb in mijn script some wat embedded PHP in jquery staan een voorbeeld is iets als:


var html = ' <span id="showmap" class="menuTemplate1 decor1_1" folder1 = "<?=$folder1?>" folder2 = "<?=$folder2?>" folder3 = "<?=$folder3?>"><?=$_SESSION['def']['SHOW_MAP']?> </span> ';



Het punt is dat het wel goed werkt, maar ik wil je boel minimaliseren. Als ik de online tools gebruik werkt dat niet, want het moet gescheiden zijn.

Ik heb google speedmodule ooit gebruikt wat welwerkte maar een grote resource verbruik voor de server is, waardoor ik dat maar heb verwijderd.

Weet iemand een tool class waar ik mijn js MET EMBEDDED PHP goed kan minimaliseren?
@cincent, dit moet geen discussie worden over of het PHP of Javascript is.
Het is zo logisch dat dit een javascript variabele is met embedded PHP. Het punt is

Nog wat ode om het wellicht wat duidelijker voor je te maken:


jQuery(document).on("click", "#adfav,#blokprof,#fotoedit,#fotochat,#favedit,#blockededit,#visitorsedit", function(t) {

	var id = $(this).attr('id');
	var member_id = $(this).attr('member_id');
	if (id == 'blokprof')
	{
		var formulier = '<div style="padding-top: 10px" ><span id="popmessage"></span><br><br><span class="bttnf yes mr" id="yes-button"><?=$_SESSION['def']['YES']?></span><span class="bttnf no" ><?=$_SESSION['def']['NO']?></span></div>';
		message = '<?=$_SESSION['def']['MESSAGEBLOCK']?>';
	}
	else if (id == 'adfav')
	{	
		var formulier = '<div style="padding-top: 10px" ><span id="popmessage"></span><br><br><span class="bttnf yes mr" id="yes-button"><?=$_SESSION['def']['YES']?></span><span class="bttnf no" ><?=$_SESSION['def']['NO']?></span></div>';
		message = '<?=$_SESSION['def']['MESSAGEADDFAV']?>';
	}
	else if (id == 'favedit')
	{	
		var formulier = '<div style="padding-top: 10px" ><span id="popmessage"></span><br><br><span class="bttnf yes mr" id="yes-button" member_id = '+member_id+'><?=$_SESSION['def']['DELETE_FAVORIT']?></span><span class="bttnf no" ><?=$_SESSION['def']['CLOSE']?></span></div>';
		var fotoimg = $(this).attr('fotoimg');
		message = fotoimg;
		
	}



Ik probeer dus inderdaad dynamisch content te cachen, omdat de php waardes anders kunnen zijn.
Ik zou het geheel gescheiden kunnen houden door bijv alle PHP syntaxen als attributen mee te geven aan JS, maar ik werk aan een script wat ik aanpas en dat zit zo niet in elkaar.

Ik weet dat bijv de google pagespeed tool de dynamische output goed cached.
Maar is hier geen goede tool, class voor?



Dit is naar mijn weten echt JavaScript ;). Wel met een paar PHPblokken erdoor in het voorbeeld van de topicstarter.


En dus is het PHP dat javascript print, niet javascript dat PHP print.

Ha, heerlijk die PHP forums waar dit soort dingen nog echt een discussie op kunnen leveren :-)
Het is zeker wel te minifieen, maar niet zomaar on-demand, vanwege de reden die genoemd wordt. Maar de winst is echt verwaarloosbaar voor dit stukje code met enkel een toekenning.

Toekennningen voor in externe js-files kan je vaak prima inladen in je HTML-document. Dat doe ik ook altijd voor dynamische content op mijn site die in JavaScript verwerk.

dit moet geen discussie worden over of het PHP of Javascript is.
Het is zo logisch dat dit een javascript variabele is met embedded PHP.


Er is geen discussie, het is PHP code. Jouw minify-probleem komt 100% doordat jij ten onrechte denkt dat dit javascript is.



Ik probeer dus inderdaad dynamisch content te cachen, omdat de php waardes anders kunnen zijn.


Dan moet je de uitvoer van dit PHP script cachen, en omdat de *uitvoer* van dit *PHP* script wel *javascript* is zou je daar een minifier op los kunnen laten, maar dat lost niet veel op.

Persoonlijk zou ik dit "embedden", wat dus niet kan, ook gewoon niet doen. Houdt javascript en PHP gescheiden en laat b.v. de javascript code al zijn data betrekken uit een data bestand of een data URL, waar al die dingen die jij nu uit $_SESSION peutert in staan. Dan kun je tijdens de pageview die data ophalen met AJAX, en dan zo lang kunt cachen als je nodig acht, serverside of clientside.
Pg Vincent op 21/10/2016 15:23:37


Dit is naar mijn weten echt JavaScript ;). Wel met een paar PHPblokken erdoor in het voorbeeld van de topicstarter.


En dus is het PHP dat javascript print, niet javascript dat PHP print.

Ha, heerlijk die PHP forums waar dit soort dingen nog echt een discussie op kunnen leveren :-)


PHP doet niet alles, die voert alleen alles uit wat tussen PHP-tags staat, en dat zijn alleen die dynamische waarden.

Het is beste is om de 'messages' in je HTML-document op te slaan:

<script>
var MESSAGEBLOCK = '<?=$_SESSION['def']['MESSAGEBLOCK']?>';
var MESSAGEADDFAV = <?=$_SESSION['def']['MESSAGEADDFAV']?>';
</script>


Dan kan je de variabelen MESSAGEBLOCK en MESSAGEADDFAV vervolgens gebruiken in je .js bestand. Op die manier blijft dit bestand statisch, en kan het netjes worden gecached waardoor de laadtijd groter wordt bij vervolg-bezoeken.

PHP doet niet alles, die voert alleen alles uit wat tussen PHP-tags staat, en dat zijn alleen die dynamische waarden.


...en de rest wordt door *de PHP engine* geprint alsof het in een print() functie staat.

Volgens jouw/jullie redenering is dit javasript:

var html=<?=$jouwvar?>

en dit PHP:

echo "var html=$jouwvar";

Ookal *moeten* beiden door PHP worden uitgevoerd...

Afijn, zoals de TS al zei; dit moet geen eindeloos gedoe worden over hoe het heet, als jullie het javascript willen noemen dan noemen jullie het maar javascript, maar dan moet je ook niet meer zeuren als je het niet kunt verwerken alsof het javascript is. :-)
Leuk voer voor voor de Koffiehoek! ;-)
@pg vincent
"Er is geen discussie, het is PHP code. Jouw minify-probleem komt 100% doordat jij ten onrechte denkt dat dit javascript is."

**knip**

Het is PHP en Javascript. leer dat nu eens een keer. Daar gaat niet niet over. Het gaat om de simpele vraag of er een tool is die embedded PHP in JS goed minimaliseert om snelheid te winnen, niets meer en niets minder.
**knip**

Heb je mijn tip al gelezen? Want het lijkt mij niet nodig om PHP te embedden in een .js-file.
@Ariën, dat is het uiteraard ook niet, en de snelheidswinst, als die er al is, zal minimaal zijn. De grootste winst haal je immers uit de cache, die je door middel van dynamische content in je externe js heel vakkundig onderuit trapt.

Wanneer het niet om externe js gaat, maar om content die direct in de HTML staat zou ik er al helemaal niet aan beginnen, je moet toch al een bak content binnenhalen in de vorm van HTML, een paar kb meer of minder zal hier geen merkbaar verschil geven.

Reageren