minify met comma terugzetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

18/05/2017 19:57:52
Quote Anchor link
Ik heb een fout gemaakt door alle JS te minimaliseren en de originele versie was door een fout verwijderd.

Nu probeer ik de minified versie terug te krijgen met online tools, maar krijg dit terug:

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
22
23
24
25
26
27
28
$.ajax({
    cache      : !1,
    contentType: !1,
    data       : b,
    error      : function (a) {},
    processData: !1,
    success    : function (a) {
        "" !== a && (
            message = '<div style="padding-top: 10px" ><span id="popmessage">' + a + "</spa" +
                    "n><br><br></div>",
            $(".popup").html(message),
            $(".overlay").show(),
            $(".popup").show(),
            $(".popup").center(),
            $(window).resize(function () {
                $(".popup").center()
            });

            if (ff == 0)
            {
            alert('d');
        }


        )
    },
    type       : "POST",
    url        : $(this).attr("action")


DIt is voor mij een hele nieuwe manier. Ik wil nu in de success een if then statement plaatsen,

if (ff == 0)
{
alert('d'),
}

maar krijg een error

write_blog:8710 Uncaught SyntaxError: Unexpected token if

als ik de comma vervang met een ; dan krijg ik:

Uncaught SyntaxError: Unexpected token ;

Kom hier niet uit om dit weer goed te krijgen.
 
PHP hulp

PHP hulp

28/03/2024 16:38:30
 
- Ariën  -
Beheerder

- Ariën -

18/05/2017 20:20:54
Quote Anchor link
Waarschijnlijk heb je nu ook meteen onduidelijke variabele en functie-namen.

Op lijn 28 mist een punt-komma. Verder raad ik aan om een backup terug te zetten, en een goede deployment uit te denken om in live-omgevingen minified code te gebruiken waarbij je in test- en ontwikkelomgevingen de normale leesbare versie gebruikt.
Gewijzigd op 18/05/2017 20:21:20 door - Ariën -
 
Daniel van Seggelen

Daniel van Seggelen

18/05/2017 20:58:46
Quote Anchor link
Ja, dat doe ik normaal ook, maar goed die fout is nu eenmaal gemaakt. Die puntkomma op het einde is het probleem niet,
Is er geen wijze om deze stijl ergens online precies terug te zetten zonder deze komma stijl?

Ik heb dit gedeelte wel werkend gekregen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$(window).resize(function () {
                $(".popup").center()
            }),(isblog != 1) && fotoref(),$(".loading-div").hide()


vertaald
if (idblof != 1)
{
fotoref();
}

hoe ik dan een else erbij krijg, ben ik nog niet achter.
Maar hoe is deze stijl opgebouwd en hoe word dit genoemd? De minify stijl?
Gewijzigd op 18/05/2017 21:04:09 door Daniel van Seggelen
 
- Ariën  -
Beheerder

- Ariën -

18/05/2017 21:34:53
Quote Anchor link
Minifying kent niet echt een standaard. De ene converter stript alleen de spaties, en sorteert de functies per regel, en de andere hernoemt ook de variabelen en functienamen naar wat korters. Commentaar wordt er ook altijd door gestript, waardoor je structuur kwijt zal raken.

Je kan met een online-tools zoals http://jsbeautifier.org/ een minified script weer leesbaar maken met spaties en tabjes. Maar het is altijd de vraag of je er in de praktijk nog wat mee kan, gezien de functienamen en variabelen.

Een 'else' toevoegen is niet heel lastig:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if (idblof != 1){
 fotoref();
} else {
// doe wat anders...
}


Ik weet niet hoe groot jouw script is die geminified is, maar als dit groter is dan 100 regels, lijkt een backup terughalen mij het beste. Of je moet van een hoop handwerk houden.
Gewijzigd op 18/05/2017 21:35:10 door - Ariën -
 
Daniel van Seggelen

Daniel van Seggelen

18/05/2017 22:20:16
Quote Anchor link
Quote:
Een 'else' toevoegen is niet heel lastig:


if (idblof != 1){
fotoref();
} else {
// doe wat anders...
}


Volgens mij lees je echt niet goed zeg.
Natuurlijk is dat niet moeilijk op de normale manier.
De "normale" manier werkt niet in de minified variant en dat is het hele probleem.

Nogmaals in herhaling voor jou:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$(window).resize(function () {
                $(".popup").center()
            }),(isblog != 1) && fotoref(),$(".loading-div").hide()


DUs "(isblog != 1) && fotoref()" is vertaald

if (idblof != 1)
{
fotoref();
}

Nogmaals een else in de minified versie, hoe gaat dat?. Die stijl wil ik dan maar even aanhouden aanhouden, die het nu gelezen word.

Quote:
"ik weet niet hoe groot jouw script is die geminified is, maar als dit groter is dan 100 regels, lijkt een backup terughalen mij het beste."


Die is groter als 100kb en de laatste backup is veel veranderd, is veel werk dus.
Gewijzigd op 18/05/2017 22:23:43 door Daniel van Seggelen
 
Ben van Velzen

Ben van Velzen

18/05/2017 22:53:29
Quote Anchor link
Waarom schrijf je niet gewoon een simpel script met if/else en kijk je wat een minify er van maakt? Door lazy evaluation zou een OR het gewenste resultaat moeten geven.
Gewijzigd op 18/05/2017 22:55:44 door Ben van Velzen
 
- Ariën  -
Beheerder

- Ariën -

18/05/2017 22:55:26
Quote Anchor link
Just what i tought! Soms niet moeilijk nadenken ;-)
 
Daniel van Seggelen

Daniel van Seggelen

18/05/2017 22:58:49
Quote Anchor link
Het lijkt erop alsof jullie het niet snappen. Het is een simpele vraag, maar er word juist heel moeilijk over gedaan.
Er was een simpele if/then and ik zie ook wat een minify ervan maakt en dat heb ik ook al 2 keer herhaalt in deze post. Dat is mijn vraag ook niet. De vraag is hoe ik er een ELSE bij kan toevoegen en de stijl hoe de minify hem uitleest is waar ik achter probeer te komen.
 
- Ariën  -
Beheerder

- Ariën -

18/05/2017 23:02:00
Quote Anchor link
Normaal is het een if(-elseif)-else blok. Maar je kan dat ook verkorten met een terniary-operator.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var message = (message=='hoi') ? 'true' : 'false');
Gewijzigd op 18/05/2017 23:02:19 door - Ariën -
 
Ben van Velzen

Ben van Velzen

18/05/2017 23:10:49
Quote Anchor link
>> Het lijkt erop alsof jullie het niet snappen. Het is een simpele vraag, maar er word juist heel moeilijk over gedaan.

Op het OOG is het een simpele vraag, maar het antwoord is geheel afhankelijk van de structuur die je minifier gebruikt.

>> Er was een simpele if/then and ik zie ook wat een minify ervan maakt en dat heb ik ook al 2 keer herhaalt in deze post. Dat is mijn vraag ook niet. De vraag is hoe ik er een ELSE bij kan toevoegen en de stijl hoe de minify hem uitleest is waar ik achter probeer te komen.

Schrijf dan een script met een ELSE en MINIFY dat, zoals reeds voorgesteld. Dan weet je EXACT hoe het gedaan wordt in het geval van de minifier die je gebruikt. Leuk om erover te gaan zitten gokken, maar meten is weten, gokken is bokken. Een gok zou zijn om iets met OR te doen, of zoals Ariën voorstelt een ternary, maar de ternary is iets dat blijkbaar niet gedaan wordt door de minifier die je gebruikt.
 
Daniel van Seggelen

Daniel van Seggelen

18/05/2017 23:52:52
Quote Anchor link
if (a == 2) {
alert('test');
}
else {
alert('else');
}


word nu

2==a?alert("test"):alert("else");

maar dat is een duidelijke syntax, die in mijn geval ook niet werkt. Ok er is dus geen minifying style. Ik zal meer bakups moeten maken, leer ik hier maar van
 
- Ariën  -
Beheerder

- Ariën -

18/05/2017 23:57:56
Quote Anchor link
Naast backups zou ik ook je deplyment-stijl aanpassen. Zodat je bij het live zetten van je site alle CSS en JS gaat minifieen, en dat je tijdens het test- en ontwikkelproces gewoon de normale un-minifieed bestanden hebt waar je lekker in kan werken en debuggen.
 



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.