IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Chargement conditionnel par résolution


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut Chargement conditionnel par résolution
    Bonjour à tous.

    Travaillant sur un version Responsive je souhaiterais charger conditionnellement en fonction de la résolution.

    Connaissez vous une technique qui permettrais de télécharger ou non en fonction de la résolution les script Fb, G+?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	<script>
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.async=true; js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
    <script type="text/javascript">
      (function() {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
    </script>
    Merci

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    À vue de nez, je ne crois pas qu'il y ait quelque chose à faire de plus compliqué que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (window.innerWidth < 400) {
       ...
    } else if (window.innerWidth < 600) {
       ...
    } else ...
    Tu vois l'idée ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <script>
    if(window.innerWidth > 400){ // <-- met la valeur que tu veux ici
     
    (function(d, s, id) {
      var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id;
      js.async=true; js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1";
      fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));</script>
      (function() {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
     
    }
    </script>
    Attention toutefois, ce chargement adaptatif n'est valable qu'au chargement de la page. S'il faut réagir au redimensionnement de la fenêtre après chargement, c'est un poil plus compliqué.

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut Merci
    Super merci bien,

    Effectivement cela ne prendra pas en compte le redimensionnement de la fenetre mais ca me va parfaitement.

    Cependant entre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( window.width < 800 || screen.width < 800 ) {
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(window.innerWidth > 400){
    quel est la dirrérence?

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    - window.width : c'est la fenêtre d'affichage que l'on peut redimensionner
    - screen.width : là il s'agit de l'écran, sauf à le changer difficile de le redimensionner.

  6. #6
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Par défaut Merci encore
    Donc dans l'objectif d'éviter de charger que les connexions "lente ne télecharge".
    Donc en se disant que ca concerne les mobiles 3g, il est plus interessant de prendre le screen.with.

    1. Il n'est pas possible de détecter le type de connexion?


    Et pour le script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
    dois je faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    if(screen.Width > 768){ 
    (function(d){
    	  var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT');
    	  p.type = 'text/javascript';
    	  p.async = true;
    	  p.src = 'http://platform.twitter.com/widgets.js';
    	  f.parentNode.insertBefore(p, f);
    	}(document));
    }
    </script>
    Merci

Discussions similaires

  1. mise en forme conditionnelle par Date
    Par bibi28 dans le forum IHM
    Réponses: 10
    Dernier message: 24/08/2008, 16h17
  2. Formatage conditionnel par programmation
    Par zoolookxpn dans le forum IHM
    Réponses: 4
    Dernier message: 02/05/2007, 19h05
  3. [HTML] Chargement conditionnel page html
    Par jacques13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/01/2007, 08h06
  4. recopie conditionnel par fonction VBA sous Excel
    Par LinusVince dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/02/2006, 18h33
  5. Réponses: 4
    Dernier message: 08/06/2004, 09h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo