Embedded PHP in jquery

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Daniel van Seggelen

Daniel van Seggelen

20/10/2016 19:53:40
Quote Anchor link
Hallo,

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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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?
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 20/10/2016 19:57:43 door - Ariën -
 
PHP hulp

PHP hulp

24/12/2024 17:44:49
 
- Ariën  -
Beheerder

- Ariën -

20/10/2016 19:58:55
Quote Anchor link
Je kan de variabelen toch gewoon tussen script-tags in je HTML-source zetten? Waarom zou je dat dan minifieen?
 
Daniel van Seggelen

Daniel van Seggelen

20/10/2016 20:06:30
Quote Anchor link
Het staat al tussen de script tags en het werkt ook gewoon. Het punt van het minifieen, spaties, commentaar etc etc, is om ruimte te besparen en snelheid te winnen.
Het werkt niet als ik alles minify met embedded script tags zoals ik aangaf
 
- Ariën  -
Beheerder

- Ariën -

20/10/2016 20:41:24
Quote Anchor link
Waar gaat het dan fout volgens jouw? Blijkbaar gaat het minifieen dan fout.
 
Daniel van Seggelen

Daniel van Seggelen

21/10/2016 14:19:26
Quote Anchor link
Kijk, ik kan alles wel handmatig op 1 lijn naast elkaar zetten,
maar ik zoek een tool waarmee ik het kan doen.

probeer bijv maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    var html = ' <span id="showmap" class="menuTemplate1 decor1_1" folder1 = "<?=$folder1?>" folder2 = "<?=$folder2?>" folder3 = "<?=$folder3?>"><?=$_SESSION['def']['SHOW_MAP']?> </span> ';


in deze tool te doen:

https://jscompress.com/

dan krijg ik:

SyntaxError: Unexpected token: name (def) (line: 1, col: 156)


Het gaat nl om een hoop bestanden, dus vandaar.
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 14:31:48
Quote Anchor link
Ik neem aan dat je geen PHP-tags gaat minifieen? Minifieen moet je alleen op de output doen.
Ik kom dan uit op:
Stats: 5.8% compression, saving 0.01 kb
Gewijzigd op 21/10/2016 14:33:04 door - Ariën -
 
Pg Vincent

Pg Vincent

21/10/2016 14:38:08
Quote Anchor link
Dit is geen jquery met embedded PHP, het is gewoon PHP. De *uitvoer* van dit script is wel javascript code en dat zou je kunnen minifyen via een PHP library, maar het scheelt waarschijnlijk *veel* meer als je compressie laat toepassen door je webserver.
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 14:40:56
Quote Anchor link
@Vincent: het is toch echt een JavaScript-string met een paar PHP-embeds. Het staat verder wel los van jQuery.
Gewijzigd op 21/10/2016 14:41:32 door - Ariën -
 
Pg Vincent

Pg Vincent

21/10/2016 14:59:55
Quote Anchor link
Quote:
@Vincent: het is toch echt een JavaScript-string met een paar PHP-embeds. Het staat verder wel los van jQuery.


Nope, het is een PHP script dat javascript print.

Het moet door PHP worden uitgevoerd om de variabelen te laten vervangen, dus het is PHP code. Dat het er heel er uitziet als javascript verandert daar niets aan. Je kunt dit niet laten minifyen door een javascript minifier, omdat het geen javascript is.
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 15:02:25
Quote Anchor link
var html = 'blaet';

Dit is naar mijn weten echt JavaScript ;). Wel met een paar PHPblokken erdoor in het voorbeeld van de topicstarter.
Gewijzigd op 21/10/2016 15:04:05 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

21/10/2016 15:13:54
Quote Anchor link
Dit kun je wss niet minifyen om de reden die Pg Vincent noemt: er zit PHP code in en is dus potentieel elke keer anders. Je probeert in wezen dynamische content te cachen :/.
 
Daniel van Seggelen

Daniel van Seggelen

21/10/2016 15:23:12
Quote Anchor link
@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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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?
 
Pg Vincent

Pg Vincent

21/10/2016 15:23:37
Quote Anchor link
Quote:
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 :-)
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 15:26:00
Quote Anchor link
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.
Gewijzigd op 21/10/2016 15:39:00 door - Ariën -
 
Pg Vincent

Pg Vincent

21/10/2016 15:48:34
Quote Anchor link
Quote:
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.


Quote:
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.
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 15:57:20
Quote Anchor link
Pg Vincent op 21/10/2016 15:23:37:
Quote:
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<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.
Gewijzigd op 21/10/2016 16:01:24 door - Ariën -
 
Pg Vincent

Pg Vincent

21/10/2016 16:05:43
Quote Anchor link
Quote:
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=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$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. :-)
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 16:10:44
Quote Anchor link
Leuk voer voor voor de Koffiehoek! ;-)
 
Daniel van Seggelen

Daniel van Seggelen

21/10/2016 21:04:37
Quote Anchor link
@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**

- Ariën -:
Enkele flames weggehaald. Houden we gezellig hier?
Flamen naar andere gebruikers verziekt de sfeer alleen maar, en draagt tevens ook niks bij.
Gewijzigd op 21/10/2016 21:12:20 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

21/10/2016 21:16:57
Quote Anchor link
Heb je mijn tip al gelezen? Want het lijkt mij niet nodig om PHP te embedden in een .js-file.
 
Ben van Velzen

Ben van Velzen

21/10/2016 22:00:16
Quote Anchor link
@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.
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.