Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    come caricare i dati in base al dispositivo utilizzato senza farlo due volte

    Salve, uso un sito in asp classic e foundation framework e grazie a questo ultimo ho le funzionalità responsive necessarie per la visualizzazione su tutti i dispositivi.

    Noto un grosso problema però... se nella versione mobile voglio caricare meno dati da una query su un database degli articoli (per esempio) rispetto a quella desktop devo determinare con quale dispositivo sto visualizzando il sito e caricare i dati di conseguenza.
    Per farlo, ho utilizzato un file di inclusione per la versione desktop che carica 20 articoli ed uno per la versione mobile che ne carica solo 5. I files di inclusione sono all'interno dei costrutti html di foundation che impongono la visualizzazione di un certo pezzo di codice solo per i dispositivi mobili o solo per le versioni desktop ("show-for-small-only" e "show-for-medium-up").

    ...cosi che pensavo che anche i dati sarebbero stati caricati in base al dispositivo utilizzato ma vedo che sono caricati entrambi (quindi 2 volte) salvo poi mostrare solo quelli legati alla visualizzazione del dispositivo corrente... in pratica spreco risorse perché carico due volte i dati sebbene poi se ne visualizzi una sola estrazione.

    Ho provato vari escamotages ma l'unico modo che ho per caricare i dati una sola volta è estrarre lo stesso numero di record per ambo le versioni cosi da usare un solo load ... solo così ridimensionando il browser mi passa dalla visualizzazione mobile a quella desktop caricando e visualizzando correttamente pagina e dati...

    Chiedo a voi se stò sbagliando approccio e se conoscete un modo per evitare questo spreco di risorse.
    Grazie
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,779
    quello che vorresti fare prevede che si invii preventivamente al server l'informazione sulla dimensione dello schermo del client. al che si decide cosa fare.

  3. #3
    Ciao e grazie per la risposta... si quello lo avevo intuito, è il come farlo in modo funzionale che non so... infatti ci sono diversi problemi, il primo dei quali che in ASP non esiste un metodo efficace per determinare la risoluzione dello schermo o meglio il dispositivo che usa la risoluzione attuale, andrebbe fatto in JS o Jquery... nel mio caso questa funzione è svolta dal framework Foundation in automatico, ma come passare i risultati ad ASP ?
    Secondariamente, una volta trovato (magari) il modo di fare ciò, otterrei un caricamento tramite una struttura decisionale, della serie che si apro la pagina con un PC desktop mi caricherebbe i dati relativi alla pagina desktop (20 records nell'esempio che ho fatto)... ma se ridimensionassi il browser fino alla risoluzione di un dispositivo mobile mi rimarrebbero 20 records e non 5 come vorrei nella pagina per mobile.
    In rete non ho trovato una cosa fatta e spiegata bene... ma credo di avere compreso che al limite entrambi i risultati non li posso ottenere ...
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,779
    moglie ubriaca e botte piena non vanno tanto d'accordo...

    con JS rilevi la risoluzione dello schermo, poi con ajax la trasmetti al server e ricarichi la pagina....
    quindi dovresti ricaricare i contenuti ogni volta che lo schermo cambia di dimensione (anche di un solo px).
    ma lo schermo cambia dimensione SOLO in fase di test, quello che fai tu.
    che senso ha progettare una cosa così complessa se serve solo a te una tantum?

    la strada più semplice è agire lato client con un framework responsivo.
    carichi comunque 20 risultati che puoi dividere in 4 sotto-pagine (un po' come si vede in molti listati che hanno già tutti i risultati in chiaro nel codice html) e tramite JS puoi impaginarli a piacere.

  5. #5
    Hai ragione, non ha senso se lo vedo solo io questo comportamento... farò come mi hai suggerito agendo post-caricamento dei records e mostrandone solo alcuni in base alla risoluzione... Grazie !
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  6. #6
    E' più semplice di quello che credi, e fai tutto in ASP!
    Ovviamente devi prima sapere se il client è su Desktop o Mobile. Come hai capito non puoi affidarti alla risoluzione video.
    Devi andare a rompere le palle a "HTTP_USER_AGENT"

    Un piccolo esempio
    codice:
    ' controllo dispositivo del visitatore (Desktop o Mobile)
    Visitatore="Desktop"
    UsrAgn=Request.ServerVariables("HTTP_USER_AGENT") 
    ArrUsr=Array("Android","webOS","iPhone","iPad","iPod","BlackBerry","IEMobile","Opera Mini")
    for x=0 to UBound(ArrUsr)
        if InStr(UsrAgn,ArrUsr(x))>0 then
            Visitatore="Mobile"
            exit for
        end if
    next
    Ora dalla variabile "Visitatore" sai se è un mobile e ti regoli di conseguenza
    Ultima modifica di SoloWiFi; 10-03-2021 a 22:08

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,779
    Quote Originariamente inviata da SoloWiFi Visualizza il messaggio
    Ora dalla variabile "Visitatore" sai se è un mobile e ti regoli di conseguenza
    questo però comporta tenere aggiornate le variabili nel tempo, queste possono cambiare.
    lo stesso concetto era stato usato diversi anni fa (per identificare i dispositivi mobili in base ad una lunga lista di variabili), poi il mondo è cambiato... e lo script è diventato inservibile.

  8. #8
    Provalo e fammi sapere.
    Lo uso regolarmente senza problemi

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,779
    l'ho provato, l'ho provato... OGGI funziona.
    poi per andriod ci sarà la versione ufficiale per desk ed ecco il casino.
    lo stesso vale per linux che prima o poi uscirà per versione mobile.


    edit:
    tralasciando il fatto che gli emulatori di browser non rispondono come ci si aspetterebbe, e in caso di prove sulla responsività il test fallisce.

  10. #10
    Io ho adottato il consiglio di Vincent.Zeno di cercare di non ricaricare due volte gli stessi dati solo per gestire due visualizzazioni diverse ma di caricarli solo una volta ed eventualmente nascondere quelli che ritengo di troppo sulla versione MOBILE.

    Avevo già usato Jquery per una cosa del genere e l'ho applicata anche qui, funziona alla grande tramite la funzione SPLICE anche se mi rimane un problemo da correggere di cui non capisco l'origine...
    ...chiedo... eventualmente posso postarlo qui o vado off-topic ?
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

Tag per questa discussione

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.