Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [SEGNALAZIONE] JSL :: Javascript Standard Library

    Di nuovo qua a chiedere pareri

    Vi presento la mia ultima creazione del fine settimana, la Javascript Standard Library.

    Lo scopo della libreria è principalmente quello di dimenticare i problemi di fix o work arounds per browsers vecchi o nuovi al fine di concentrarsi, quando scriviamo codice JS, sulle sole cose che ci interessano senza dover ogni volta fare i soliti copia e incolla dei soliti work arounds o fix, pensa a tutto la JSL.

    Cosa c'è nella JSL ? ... semplice, tante novità di JS 1.6 rese standards ed utilizzabili anche da praticamente tutti i browsers (si, pure IE4 !!!).

    Global
    encodeURI
    encodeURIComponent
    decodeURI
    decodeURIComponent
    Error (class)

    document
    getElementById
    getElementsByTagName (nested elements too)
    getElementsByName (nested elements too)

    Object
    toSource (FireFox Object convertion)

    Date
    getYear (standard value: getFullYear() - 1900)

    Array
    pop
    push
    shift
    splice
    unshift
    indexOf
    lastIndexOf
    every
    filter
    forEach
    map
    some

    String
    lastIndexOf
    replace (function as second argument)

    extra
    XMLHttpRequest (NOTE: with IE4 or uncompatible browsers returns null)



    Eccola qua: http://www.devpro.it/JSL/

    Attendo feedbacks, opinioni, consigli, bug reports, grazie
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    L'idea è buona però metà delle funzionalità (quelle che uso più spesso) sono già realizzate da prototype (array e ajax), altre invece sono già implementate di base nel linguaggio anche se magari non supportate da browser come Explorer 4 (non so a quanti possa interessare una compatibilità così tanto all'indietro).

    Non capisco proprio la scelta di fare un file .js packed visto che librerie molto più complesse come prototype o script.aculo.us non lo sono e che non vedo documentazione per usare le varie funzioni che hai fatto... un utente alle prime armi potrebbe avere delle difficoltà ad utilizzarle (e magari a segnalarti eventuali errori/miglioramenti visto che il tutto è una sola riga)

    Senza contare che se dovessi garantire la compatibilità con IE4 utilizzando un codice compresso non potrei farlo perchè non ho la possibilità di analizzare il codice che hai scritto e quindi utilizzerei librerie opensource (leggibili), imho ovviamente.

    Ciauz
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Originariamente inviato da fcaldera
    L'idea è buona però metà delle funzionalità (quelle che uso più spesso) sono già realizzate da prototype (array e ajax), altre invece sono già implementate di base nel linguaggio anche se magari non supportate da browser come Explorer 4 (non so a quanti possa interessare una compatibilità così tanto all'indietro).

    Non capisco proprio la scelta di fare un file .js packed visto che librerie molto più complesse come prototype o script.aculo.us non lo sono e che non vedo documentazione per usare le varie funzioni che hai fatto... un utente alle prime armi potrebbe avere delle difficoltà ad utilizzarle (e magari a segnalarti eventuali errori/miglioramenti visto che il tutto è una sola riga)

    Senza contare che se dovessi garantire la compatibilità con IE4 utilizzando un codice compresso non potrei farlo perchè non ho la possibilità di analizzare il codice che hai scritto e quindi utilizzerei librerie opensource (leggibili), imho ovviamente.

    Ciauz
    risp io, la compressione e' necessaria per risparmiare banda, inizialmente il progetto prevedeva la possibilità di guardare ai sorgenti
    la documentazione e quella ufficiale ECMA cioe' push e' il vero push,
    per intenderci e' qualcosa del tipo
    codice:
    if(!Array.prototype.push)
        Array.prototype.push=function(){ //..
    se il metodo e' già supportato allora non viene sovrascritto e si ha prestazione maggiore.

    e' perfettamente compatibile con prototype ,jquery ecc..
    poiche' non crea nulla di nuovo riscrive solo cio' che manca

  4. #4
    Originariamente inviato da fcaldera
    L'idea è buona però metà delle funzionalità (quelle che uso più spesso) sono già realizzate da prototype (array e ajax)
    e non solo, tutte le librerie che usi sprecano "kbytes preziosi" per fare sempre gli stessi workarounds ... comunque JSL non cambia il JS come fa rpototype, non c'è niente di nuovo, solo JavaScript standard 1.6 per tutti


    Originariamente inviato da fcaldera
    , altre invece sono già implementate di base nel linguaggio anche se magari non supportate da browser come Explorer 4 (non so a quanti possa interessare una compatibilità così tanto all'indietro).
    ah si ? .... encodeURIComponent, l'unica vera funzione per inviare o ricevere (con decodeURIComponent) sai che non c'è nemmeno per IE 5 e IE per mac ?

    sai che lastIndexOf di array o stringhe non c'è nemmeno per IE 5.5 ?
    sai che map, filter e tutte le nuove funzioni di array introdotte in FireFox 1.5 mancano in quasi tutti gli altri browsers ?

    Insomma ... questa libreria "non deve interessare" , deve semplicemente essere inclusa per aumentare compatibilità con browsers come Safari, KDE, vecchie versioni di IE.

    Tu scrivi standard, quindi FireFox compatibile, JSL normalizza il tutto per gli altri browsers

    Il fatto di IE4 è più per dire "pensa te quanto è retro compatibile" che per la reale necessità di avere metodi per IE4



    Originariamente inviato da fcaldera
    Non capisco proprio la scelta di fare un file .js packed
    6.8 Kb contro 12 può bastare ?



    Originariamente inviato da fcaldera
    non vedo documentazione per usare le varie funzioni che hai fatto
    è standard, qualunque sito a partire da Mozilla ha la documentazione per quelle funzioni



    Originariamente inviato da fcaldera
    ... un utente alle prime armi potrebbe avere delle difficoltà ad utilizzarle (e magari a segnalarti eventuali errori/miglioramenti visto che il tutto è una sola riga)
    un utente alle prime armi vai tranquillo che non capirebbe un accidente della libreria, figuriamoci segnalarmi migliorameti

    per gli errori sono qui



    Originariamente inviato da fcaldera
    Senza contare che se dovessi garantire la compatibilità con IE4 utilizzando un codice compresso non potrei farlo perchè non ho la possibilità di analizzare il codice che hai scritto e quindi utilizzerei librerie opensource (leggibili), imho ovviamente.
    peccato che non ne esistano, la string replace è "solo mia", come encodeURIComponent, decodeURIComponent (per le quali non ho trovato praticamente niente in rete) o la toSource.

    Come ho già detto, la metti in cima, scrivi codice per FireFox 1.5 e non ti preoccupi di niente, almeno a livello di core, poi le librerie per implementare DOM, AJAX, scriptacolous o quello che ti pare le puoi usare (o creare) senza pensare ai soliti, noiosi, work arounds.


    Aggiunta la demo: http://www.devpro.it/JSL/demo.html

    e "a gran richiesta" aggiunto il source: http://www.devpro.it/JSL/JSLOpenSource.js


    perchè è pressapoco incomprensibile ? ... perchè è scritto pensando alla versione packettizzata, per risparmiare la metà dei kbytes


    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    fixato qualcosina ed aggiornata la pagine con qualche F.A.Q.
    http://www.devpro.it/JSL/

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    a titolo informativo, aggiornata la versione ora stabile alla 1.2

    un paio di fix per KDE ed una svista per l' has, se usavate questa libreria scaricate e sovrascrivete senza preoccuparvi

    P.S. se ci sono problemi o malfunzionamenti sono qui
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di smt
    Registrato dal
    Jul 2002
    Messaggi
    167
    credo che il tuo sia un ottimo lavor andr3a, quando ho scritto una lib simile alla tua ma con funzionalità differenti ho scelto un approccio procedurale, tipo
    Codice PHP:
    function array_map(af){
      if(Array.
    prototype.map) return a.map(f);
      [...]
      
    //definisco map..

    proprio perché non volevo al tempo sovrascrivere il comportamento standard delle classi base, purtroppo questo comporta riscrivere tutto quello che mi occorre con le mie funzioni, mentre il tuo approccio ha il vantaggio di rendere crossbrowser js non pensato per esserlo.
    Reality is that which, when you stop believing in it, doesn't go away

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.