Rezultate 1 la 9 din 9

Subiect: jSpine - o librarie Javascript similara cu jQuery, ideala pentru proiecte mici

  1. #1
    Avatarul lui Andretti
    Andretti este deconectat Membru SeoPedia
    Reputatie:
    18
    Data înscrierii
    25th October 2007
    Posturi
    101
    Putere Rep
    18


    3 out of 3 members found this post helpful.

    Thumbs up jSpine - o librarie Javascript similara cu jQuery, ideala pentru proiecte mici

    De ceva timp utilizez cu succes o librarie pe care am imbunatatit-o constant si care in multe din proiectele la care am lucrat, a inlocuit cu succes faimoasa librarie jQuery.
    Nu numai ca este de aproape 50 ori mai mica decat jQuery(care a ajuns la 300Kb) dar este si mult mai rapida, tocmai pentru ca nu inglobeaza anumite componente si nu suporta plugins.
    Asa ca sa nu fiu egoist, de curand am decis sa o botez si sa o urc pe GitHub.
    Pana va fi gata documentatia, puteti arunca o privire aici: jSpine.js - exemple

    Feedback-ul vostru e binevenit, atata timp cat e constructiv.

  2. #2
    Avatarul lui harrvester
    harrvester este deconectat Membru SeoPedia
    Reputatie:
    3
    Data înscrierii
    21st February 2016
    Locaţie
    Bucuresti
    Vârstă
    27
    Posturi
    56
    Putere Rep
    3


    Implicit

    Mare like!

    Cu toate acestea nu cred ca abordezi corect problema. Ai copiat o parte din functionalitatile din jQuery si libraria ta e mai light. Avantajul apare doar daca ai dial-up sau daca scriptul ruleaza pe o masina cu resurse limitate.

    Incearca sa vii cu ceva nou. Cine renunta la jQuery pentru viteza trece de cele mai multe ori pe vanila; iar cei ce folosesc js pur de obicei au cunostinte acceptabile in domeniu. E destul de usor sa ascunzi un element sau sa shimbi un atribut, o clasa. Cred ca ar fi apreciate metodele putin mai complexe, ce ar facilita spre exemplu lucrul cu vectori / obiecte / stive / cozi .. array fil ? Un fel de mix light intre jQuery si underscore.

  3. #3
    Avatarul lui Andretti
    Andretti este deconectat Membru SeoPedia
    Reputatie:
    18
    Data înscrierii
    25th October 2007
    Posturi
    101
    Putere Rep
    18


    Implicit

    Nu-mi place cum suna "copiat". Am simplificat si recreat cele mai utilizate metode cu care utilizatorii de jQuery sunt deja familiarizati, bineinteles respectand method chaining. Incurajez folosirea JS pur la crearea functiilor simple si CSS atunci cand framework-urile devin overkill. In opinia mea, overkill inseamna cantitatea de raw code care poate fi mai mica decat daca ai folosi o librarie sau framework coroborata cu expansiunea complexitatii aplicatiei.
    Asta insemnand ca initial, volumul de raw JS poate fi destul de rapid si suficient chiar daca nu poate fi reutilizat sau poate fi reutilizat partial, iar mai tarziu cand complexitatea aplicatiei creste, sa constati ca ai nevoie de o librarie.
    De acord, e usor sa ascunzi un element sau sa schimbi un atribut dar daca vrei sa serializezi un form ale carui date sa fie trimise prin XHR, volumul de pure JS devine prea mare.
    Ideea ta e buna dar nu ma pricep la vectori si nici mare fan JS nu sunt. Nu scriu JS in fiecare zi ci doar atunci cand nevoia ma indeamna s-o fac.
    Asa s-a intamplat si cu jSpine.js care a luat nastere dupa ce m-am saturat de jQuery si JS pur.

  4. #4
    Avatarul lui harrvester
    harrvester este deconectat Membru SeoPedia
    Reputatie:
    3
    Data înscrierii
    21st February 2016
    Locaţie
    Bucuresti
    Vârstă
    27
    Posturi
    56
    Putere Rep
    3


    1 out of 1 members found this post helpful.

    Implicit

    Imi cer scuze, nu am vrut sa insinuez ca ai copiat codul. Am vrut sa zic ca e aceeasi functionalitate.

    Inca 2 sugestii:

    1. Nu te zgarci cand vine vorba de scalabilitate. Cu siguranta nu o sa poti lua in calcul toate posibilele utilizari. Mai bine cativa kilo in plus decat sa fortezi pe cineva sa foloseasca alta librarie.

    2. O optimizare pentru viteza.

    Cand ai ceva de genul:

    Cod:
    for (j = 0; j < elem.options.length; j++)
    Vei calcula elem.options.length la fiecare iteratie a lui j.

    Varianta optima este:
    Cod:
    var l = elem.options.length;
    for (j = 0; j < l; j++)
    Sau:
    Cod:
    for (var j = 0, l=elem.options.length; j < l; j++)
    Totusi, nu recomand ultima versiune. Conform jslint / Douglas Crockford, declararea variabilelor in for nu este "Best Practice". Parerile sunt impartite.. https://www.google.ro/webhp?sourceid...best+practices

  5. #5
    Avatarul lui Andretti
    Andretti este deconectat Membru SeoPedia
    Reputatie:
    18
    Data înscrierii
    25th October 2007
    Posturi
    101
    Putere Rep
    18


    Implicit

    Good catch. Multam.
    Cu ocazia asta am actualizat /examples si redenumit metoda newel in newEl plus alte cateva modificari.
    Ieri, libraria a fost acceptata si a devenit disponibila pe jsDelivr CDN. In mod normal noua versiune ar trebui sa apara in cateva minute de la Pull request-ul automat.
    Cod:
    https://cdn.jsdelivr.net/jspine/latest/jspine.min.js
    sau
    Cod:
    https://cdn.jsdelivr.net/jspine/latest/jspine.js
    pentru ultima versiune.

  6. #6
    Avatarul lui Vinturis Gheorghe
    Vinturis Gheorghe este deconectat Membru SeoPedia
    Reputatie:
    10
    Data înscrierii
    27th June 2012
    Locaţie
    Constanta
    Vârstă
    25
    Posturi
    64
    Putere Rep
    10


    Implicit

    Posibiltatea de a selecta funcțiile necesare în proiect și generarea librăriei... Un soft web care ar permite asta din jquery spre exemplu, ar fi ceva cu adevărat util.

    Nu spun ca nu este utila librăria ta, ci asa as fi abordat eu lucrurile...
    Ultima modificare făcută de Vinturis Gheorghe; 7th May 2016 la 19:34.
    [ex user George92]

  7. #7
    Avatarul lui Andretti
    Andretti este deconectat Membru SeoPedia
    Reputatie:
    18
    Data înscrierii
    25th October 2007
    Posturi
    101
    Putere Rep
    18


    Implicit

    O idee buna si relativ usor de pus in practica. La asta ar fi trebuit sa se gandeasca ei mai ales ca au ca exemplu Bootstrap care ofera posibilitatea de a selecta doar componentele necesare.
    300Kb inseamna foarte mult chiar si pentru site-uri medii care includ slidere custom, galerii foto, portofoliu, formulare si alte minuni.

  8. #8
    Avatarul lui harrvester
    harrvester este deconectat Membru SeoPedia
    Reputatie:
    3
    Data înscrierii
    21st February 2016
    Locaţie
    Bucuresti
    Vârstă
    27
    Posturi
    56
    Putere Rep
    3


    1 out of 1 members found this post helpful.

    Implicit

    Eu o sa te contrazic aici. 300Kb nu e mult.

    In plus jquery-2.2.3.min.js are 85.7kB. La asta putem adauga apc si gzip. Ca sa nu mai zic de cache la client. Timpul de incarcare va fi sub 50ms si probabil de 1ms daca faci cache pe client.

    Evident... cu cat mai light cu atat mai bine dar uneori nu merita sa pierzi timpul cu asta.

  9. #9
    Avatarul lui Andretti
    Andretti este deconectat Membru SeoPedia
    Reputatie:
    18
    Data înscrierii
    25th October 2007
    Posturi
    101
    Putere Rep
    18


    Implicit

    Nu discutam despre browser cache, pentru ca pana acolo e mult. Telefonul sau laptopul tau cu >= 3G trebuie sa descarce aia 85Kb + un CSS preprocesor care depaseste 500Kb + ceva fonturi si uite-asa iti termini cafeaua asteptand.
    Ce incerc sa explic este ca prima pagina deschisa de client poate face diferenta intre un bounce rate mic si unul de peste 80%-90%.

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Programare Proiecte mici
    De all3ss1o în forumul Oferte gratuite
    Răspunsuri: 5
    Ultimul Post: 13th August 2013, 17:13
  2. Caut programtor Javascript ( jQuery )
    De Lucian00 în forumul Servicii web / Jobs
    Răspunsuri: 0
    Ultimul Post: 16th June 2013, 14:05
  3. Caut programator PHP/MySQL/jQuery pentru creare aplicatie
    De Iulian în forumul Servicii web / Jobs
    Răspunsuri: 3
    Ultimul Post: 7th February 2012, 20:00
  4. Răspunsuri: 4
    Ultimul Post: 25th January 2012, 21:52

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •