Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2040 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  1250  1251  1252  ..  1454  1455  1456  1457  1458  1459
Auteur Sujet :

blabla@web

n°2187929
mechkurt
Posté le 29-04-2013 à 09:41:02  profilanswer
 

Reprise du message précédent :

skylight a écrit :


Avec jQuery et un stop(). ça se fait tout seul.


 

GoldAdvance a écrit :


 
+1
 
Ou .removeEvent()
 
Un truc à pas faire c'est de superposer animation en CSS + JS, j'suis en train de reprendre tout le layout d'un site et les anims, le tout combinant du JS et CSS pour les anims, le comportement est à peu près propre sous webkit mais alors sur Fx et IE [:tinostar]


Pas sur de comprendre vos réponses, j'ai fait un test pour vous montrer mon problème :
http://codepen.io/anon/pen/tBwsA
 
Si on passe sur les 4 super vite, ça reste blocké "blanc".
 
J'ai essayé de bidouiller un truc avec un enregistrement de l’état mais je trouves ça lourd et sale (bon dans mon exemple fait à l'arrache en plus ça bug ^^):
http://codepen.io/anon/pen/cjaIe


Message édité par mechkurt le 29-04-2013 à 09:41:17

---------------
D3
mood
Publicité
Posté le 29-04-2013 à 09:41:02  profilanswer
 

n°2187930
SekYo
Posté le 29-04-2013 à 09:46:31  profilanswer
 

flo850 a écrit :

Ca je maitrise déjà (et l'apprentissage a été long et douloureux au passage), mais ça ne marche qu'avec une liste  préexistante et explicite de fichiers, tout est chargé au démarrage, a chaque modification, tout est retransferé  
 
Je me vois mal générer un fichier manifest de 60Mo ( 200K fichiers, 30 caractères par url)


Dans le manifest du APP Cache, tu peux mettre des wildcard il me semble... Tes bouts de carte sont pas tous servis par une URL qui a la même tronche et que tu pourrais faire matcher génériquement ?

n°2187934
ANViL
yep...definitely ♫
Posté le 29-04-2013 à 10:11:45  profilanswer
 

J'ai toujours été persuadé qu'en CSS, l'unité px correspondait @ 1 pixel à l'écran.
 
Et bien en fait, ce n'est pas le cas :hebe:
 


---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
n°2187941
flo850
moi je
Posté le 29-04-2013 à 10:32:26  profilanswer
 

SekYo a écrit :


Dans le manifest du APP Cache, tu peux mettre des wildcard il me semble... Tes bouts de carte sont pas tous servis par une URL qui a la même tronche et que tu pourrais faire matcher génériquement ?


les wildcards ne sont que dans la partie network ( genre pour tout ce qui est tile/* en offline servir 'not-found.jpg' ), pas dans la partie mise en cache
 
En bonus le fonctionnement de l'appcache est assez violent : il charge tout le catalogue a chaque appel de ta page html, et si il y a une modification, il essaye de recharger toutes les urls du manifest. Une fois le téléchargement fini, si tout s'est bien passé, il faut que l'utilisateur recharge la page pour avoir accès aux nouveaux fichiers.
 


---------------

n°2187942
gatsu35
Blablaté par Harko
Posté le 29-04-2013 à 10:32:35  profilanswer
 

Déjà faut utiliser mouseenter et mouseleave
ensuite il faut mettre des stops sur tes FX sinon ça part en cacahuète
http://codepen.io/arnogues/pen/nwceH


---------------
Blablaté par Harko
n°2187964
Ydalb
In Crêpes n' Cidre I Trust!
Posté le 29-04-2013 à 11:38:36  profilanswer
 
n°2187982
ANViL
yep...definitely ♫
Posté le 29-04-2013 à 13:22:33  profilanswer
 


 
 
http://instacod.es/72160
 
[:ddr555]


---------------
Easy Ridin'  ⎝⏠⏝⏠⎠  
n°2187998
mechkurt
Posté le 29-04-2013 à 14:18:59  profilanswer
 

gatsu35 a écrit :

Déjà faut utiliser mouseenter et mouseleave
ensuite il faut mettre des stops sur tes FX sinon ça part en cacahuète
http://codepen.io/arnogues/pen/nwceH


Ok merci beaucoup, je ne savais pas qu'on pouvait Fx.stop(); (c'est pas dans la doc) et ni le .offsetWidth qui remplace avantageusement un MASK.getSize().y !
 
Un bon bouquin à me conseiller sur les bases de dev en JS ?


---------------
D3
n°2188000
gatsu35
Blablaté par Harko
Posté le 29-04-2013 à 14:28:36  profilanswer
 

mechkurt a écrit :


Ok merci beaucoup, je ne savais pas qu'on pouvait Fx.stop(); (c'est pas dans la doc) et ni le .offsetWidth qui remplace avantageusement un MASK.getSize().y !
 
Un bon bouquin à me conseiller sur les bases de dev en JS ?


Vraiment étrange qu'ils n'aient pas documenté stop() dans la doc, pourtant la fonction est bien présente dans l'objet FX et n'est pas appelée en interne au niveau du core.


---------------
Blablaté par Harko
n°2188278
flo850
moi je
Posté le 30-04-2013 à 20:48:59  profilanswer
 

pour les warriorir qui veulent faire de l'ES 6 tout de suite : http://addyosmani.com/blog/author- [...] for-grunt/


---------------

mood
Publicité
Posté le 30-04-2013 à 20:48:59  profilanswer
 

n°2188489
gatsu35
Blablaté par Harko
Posté le 02-05-2013 à 11:15:20  profilanswer
 

Je bosse sur un projet avec Dustin Diaz \o/


---------------
Blablaté par Harko
n°2188504
BenO
Profil: Chercheur
Posté le 02-05-2013 à 11:41:50  profilanswer
 

Shinuza a écrit :

Oui et oui. Par contre c'était dans la période de transition entre la version 2.1 et 2.22. Y'avait beaucoup de bugs, des trucs assez graves (genre, tu vires une page pour une langue donnée: tu reçois une traceback en cadeau), et des trucs moins graves, notamment le JS qui était pas namespacé (il embarque une version de jQuery pour l'édition live). Je sais qu'il y avait un chantier JS avec une ré-écriture complète qui à été mené, pour le reste, la qualité, je sais pas.
 
On a patché un certain nombre de bugs, ensuite ça s'est bien déroulé. Le système de plugin est bien foutu, et t'as moyen de bien brider le client final. Faut voir ce qui s'est fait entre 2.2 et 2.4


 
Et si on comparait avec Mezzanine ? [:cerveau whistle]
 
On va étudier ces deux solutions.


---------------
Python Python Python
n°2188509
Shinuza
This is unexecpected
Posté le 02-05-2013 à 11:53:56  profilanswer
 

BenO a écrit :


 
Et si on comparait avec Mezzanine ? [:cerveau whistle]
 
On va étudier ces deux solutions.


Pas de bol, Mezzanine était aussi entre deux eaux quand j'ai fait l'audit. Le code à beaucoup bougé depuis.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2188549
koskoz
They see me trollin they hatin
Posté le 02-05-2013 à 14:47:23  profilanswer
 

Question sf2 :
 
Je développe un Bundle qui se veut le plus générique possible.
 
Dans ce bundle j'utilise un layout mais je veux faire en sorte que n'importe quel Bundle utilisant ce Bundle puisse utiliser son layout.
Pour ça j'ai regardé du côté de l'héritage dynamique dans twig et j'en suis arrivé à ça :
{% extend baseLayout %}
Où baseLayout est une variable contenant le chemin du layout de base.
 
Maintenant le problème c'est que je dois injecter cette variable, baseLayout, à chaque vu, donc à chaque action.
 
J'ai vu qu'il y avait des variables globales Twig, mais je veux que la config de mon baseLayout reste propre à mon bundle.


---------------
Twitter
n°2188717
pop-pan
yay!
Posté le 03-05-2013 à 10:54:28  profilanswer
 

flo850 a écrit :

Je souhaite conserver des morceaux de carte disponibles hors connexion (genre 1 ou 2Go en quelque centaines de milliers de fichiers)  
Les pistes que j'ai exploré :  

  • faire confiance au navigateur pour mettre en cache donne des résultats assez variables:/
  • indexeddb fonctionne bien, mais chrome ne veut pas du blob, et il n'y a qu'un petit support sur les mobiles
  • filesystme api : support trop faible ( chrome +BB10only)
  • websql a un support un peu plus grand sur mobile mais les espaces dispos sont faibles, etje ne crois pas que les blob soient supportés ( donc base64, donc +30% en espace de stockage)
  • localstorage : espace de stockage trop petit

J'ai raté une solution simple ?


 
ben non y'a pas de solution simple :(
 
sqlite supporte les blob donc normalement websql aussi (a moins qu'il y ait d'autres impl. mais pas a ma connaissance) mais safari limite a 50Mo /domain et chrome a 25/5Mo donc c'est mort pour 2Go (a moins de faire une extension qui request unlimitedstorage)
 
j'aurais tendance a te proposer de regarder du coté des polyfills filesystem => indexeddb
https://github.com/ebidel/idb.filesystem.js
 
mais ca resoudra pas tes pbs sur mobile a moins que tu puisse limiter le nombre de tiles et la tu peux aussi chercher un polyfill indexeddb=>websql

Message cité 1 fois
Message édité par pop-pan le 03-05-2013 à 10:57:45

---------------
Plop !
n°2188719
flo850
moi je
Posté le 03-05-2013 à 10:57:23  profilanswer
 

Je pense que ça va se finir en phongap pour le gros cache, et indexeddb+ polyfill pour stoker un subset de données sur les clients pur web

 

les polyfills ne permettent pas de passer outre les limites de stockages :/ et tous les navigateurs ne permettent pas de demander de l'espace supplémentaire


Message édité par flo850 le 03-05-2013 à 10:57:45

---------------

n°2188721
pop-pan
yay!
Posté le 03-05-2013 à 11:00:46  profilanswer
 

si c'est vraiment un pré requis de stocker les cartes c'est clair qu'un serveur local avec un sqlite et des mbtiles c'est aussi simple.


---------------
Plop !
n°2188723
flo850
moi je
Posté le 03-05-2013 à 11:05:51  profilanswer
 

oui je pensais un peu à ça ( c'est juste qu'il va falloir que j'encapsule un peu ça pour ne pas trop faire diverger les bases de code entre la webapp et la version phonegap)
 
J'aurai bien voulu faire une app 100% web, c'est le seul point pour lequel je n'ai pas trouvé de solution :/ (ceci dit, en passant a phonegap, je peux faire une app qui tourne en arrière plan ce qui est impossible avec une webapp)


---------------

n°2188736
pop-pan
yay!
Posté le 03-05-2013 à 11:32:07  profilanswer
 

c'est clair que la difference ca va surtout etre le tiles delivery.
 
mais si tu utilises leaflet ca permet de faire des trucs pas mal avec des changement conditionnels de sources a la volée et du progressive enhancement. tu pourrais avoir la meme page qui selon l'os/device detecté charge la datasource la plus pertinente
 
en ce moment je fais joujou avec d3 et leaflet et c'est plutot marrant (plus que raphael huhuhu)
avec d3 et des poly geoJson/topoJson en niveau de detail bas ou en enhancement et des tiles des qu'on zoome.


---------------
Plop !
n°2188743
flo850
moi je
Posté le 03-05-2013 à 11:42:53  profilanswer
 

En fait, j'ai fait un plugin ( que je vais peut être  publier) qui utilise filesystem/indexeddb pour stocker les tiles en offline
Quand tu fais une requêtes pour une tuile, si elle est en cache elle est affichée immédiatement, puis mise à jour quand la requête revient du serveur ( et ca remet  à jour le cache). Donc il me "suffira" de faire une phonegap/mbtiles store et ça devrait le faire .

 


toi aussi, tu joue avec leaflet :d
En fait, putôt que d3, j'ai pris http://humangeo.github.io/leaflet-dvf/ et awesomemarker


Message édité par flo850 le 03-05-2013 à 11:44:27

---------------

n°2188745
0x90
Posté le 03-05-2013 à 11:45:19  profilanswer
 

pop-pan a écrit :


 
ben non y'a pas de solution simple :(
 
sqlite supporte les blob donc normalement websql aussi (a moins qu'il y ait d'autres impl. mais pas a ma connaissance) mais safari limite a 50Mo /domain et chrome a 25/5Mo donc c'est mort pour 2Go (a moins de faire une extension qui request unlimitedstorage)
 
j'aurais tendance a te proposer de regarder du coté des polyfills filesystem => indexeddb
https://github.com/ebidel/idb.filesystem.js
 
mais ca resoudra pas tes pbs sur mobile a moins que tu puisse limiter le nombre de tiles et la tu peux aussi chercher un polyfill indexeddb=>websql


 
Les bidouilles à base de subdomains c'est pas envisageable ?


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°2188758
pop-pan
yay!
Posté le 03-05-2013 à 12:10:29  profilanswer
 

tout le monde joue avec leaflet ! c'est trop bien !
 
mais ouais tiens peut etre je devrais regarder dvf.
 
d3 c'etait parce qu'on bossait avec du mapbox et que leur api changeait tout le temps (en plus de bugguer a mort sur mobile)
 
maintenant que c'est officiellement sur base leaflet ca change quelques trucs :) ne serait ce que la taille du code a charger. leaflet + dvf ca pese 135Ko, soit environ la taille de d3.
faut juste que je vois si ca charge du topojson ou si je dois transformer mes maps


---------------
Plop !
n°2188759
flo850
moi je
Posté le 03-05-2013 à 12:16:29  profilanswer
 

0x90 a écrit :

 

Les bidouilles à base de subdomains c'est pas envisageable ?

 

J'ai peur que ce ne soit pas perenne

 

Au passage : voila ce que donne le plugin

 
Code :
  1. L.FileSystemStore = L.Class.extend({
  2.    includes: L.Mixin.Events,
  3.    initialize: function () {
  4.        var that = this;
  5.        this._fs = null;
  6.        window.requestFileSystem(window.TEMPORARY, 50 * 1024 * 1024,
  7.                function (fs) {
  8.                    that._fs = fs;
  9.                    that.fire('ready');
  10.                }, function (error) {
  11.                    console.log(error);
  12.                })
  13.    },
  14.    get: function (key, onsuccess, onerror) {
  15.        var that = this;
  16.        var path = hex_md5(key);
  17.        this._fs.root.getFile(path, {}, function (fileEntry) {
  18.            onsuccess.call(null, {src: fileEntry.toURL()});
  19.  
  20.  
  21.        }, function (e) {
  22.            console.log(e);
  23.            that.fire('error', e)
  24.        });
  25.    },
  26. //{url: url, time: +new Date(), data: blob}
  27.    put: function (image_data) {
  28.        var that = this;
  29.        var path = hex_md5(image_data.url);
  30.        this._fs.root.getFile(path, {create: true}, function (fileEntry) {
  31.            fileEntry.createWriter(function (file_writer) {
  32.                file_writer.write(image_data.data);
  33.            }, function (e) {
  34.                console.log(e);
  35.                that.fire('error', e)
  36.            });
  37.  
  38.        }, function (e) {
  39.            console.log(e);
  40.            that.fire('error', e)
  41.        });
  42.    },
  43.    ready: function () {
  44.        return !!this._fs;
  45.    }
  46. });
  47.  
  48. L.IndexedDbStore = L.Class.extend({
  49.    includes: L.Mixin.Events,
  50.    initialize: function () {
  51.        window.indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.OIndexedDB || window.msIndexedDB,
  52.                IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.OIDBTransaction || window.msIDBTransaction;
  53.  
  54.        var that = this;
  55.        this._db = null;
  56.        this._store = null;
  57.        this._version = 1;
  58.  
  59.        var request = indexedDB.open("leaflet_store", this._version);
  60.        request.onsuccess = function (evt) {
  61.            that._db = request.result;
  62.            that.fire('ready');
  63.        };
  64.        request.onerror = function (evt) {
  65.            that.fire('error', evt);
  66.        };
  67.        request.onupgradeneeded = function (evt) {
  68.            that._store = evt.currentTarget.result.createObjectStore("tile_cache",
  69.                    { keyPath: "url" });
  70.            that._store.createIndex("time", "time", { unique: false });
  71.  
  72.        };
  73.    },
  74.  
  75.    get: function (key, onsuccess, onerror) {
  76.        var db = this._db;
  77.        var trans = db.transaction(["tile_cache"]);
  78.        var store = trans.objectStore("tile_cache" );
  79.        var request = store.get(key);
  80.  
  81.        request.onerror = function (event) {
  82.            onerror.call(null, event);
  83.        };
  84.        request.onsuccess = function (event) {
  85.            onsuccess.call(null, request.result);
  86.        };
  87.    },
  88.  
  89.    put: function (data) {
  90.        var db = this._db;
  91.        var trans = db.transaction(["tile_cache"], "readwrite" );
  92.        var store = trans.objectStore("tile_cache" );
  93.        var that = this;
  94.        var request = store.put(data);
  95.        request.onsuccess = function (e) {
  96.            that.fire('success');
  97.        };
  98.        request.onerror = function (e) {
  99.            that.fire('error', e);
  100.        };
  101.    },
  102.    ready: function () {
  103.        return !!this._db;
  104.    }
  105.  
  106.  
  107. });
  108. window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
  109. L.store = window.requestFileSystem  ? new L.FileSystemStore() : new L.IndexedDbStore(); //chrome doesn't like blob in indexeddb but offers the file system api
  110.  
  111. L.CachedTileLayer = L.TileLayer.extend({
  112.    //TODO check if store is ready
  113.    //TODO pruning
  114.    //TODO : seed cache
  115.    //always_check_online : option pour savoir si c'est utile de prendre sur le web une tuile qu'on a en cache
  116.    // prune(date creation, nb access,
  117.  
  118.    _setTileSrcFromBlob: function (tile, blob) {
  119.        var URL = window.URL || window.webkitURL;
  120.  
  121.        // Create and revoke ObjectURL
  122.        var imgURL = URL.createObjectURL(blob);
  123.  
  124.        // Set img src to ObjectURL
  125.        tile.src = imgURL;
  126.  
  127.        // Revoking ObjectURL
  128.        URL.revokeObjectURL(imgURL);
  129.    },
  130.  
  131.    _loadTile: function (tile, tilePoint) {
  132.        tile._layer = this;
  133.        tile.onload = this._tileOnLoad;
  134.        tile.onerror = this._tileOnError;
  135.        this._adjustTilePoint(tilePoint);
  136.  
  137.  
  138.  
  139.  
  140.        var src = this.getTileUrl(tilePoint);
  141.        //try to get an existing tile from cache
  142.        L.store.get(src, function (record) {
  143.            if (record) {
  144.                if (record.src) {
  145.                    tile.src = record.src;
  146.                } else {
  147.                    if (record.data) {
  148.                        tile._layer._setTileSrcFromBlob(tile, record.data)
  149.                    }
  150.                }
  151.            }
  152.        })
  153.  
  154.        //load data from ajax2 (browser supporting indexed db also support binary aja query
  155.        var xhr = new XMLHttpRequest();
  156.        xhr.open('GET', src, true);
  157.        xhr.responseType = 'blob';
  158.  
  159.        xhr.onload = function (e) {
  160.            if (this.status == 200) {
  161.                var blob = new Blob([this.response], {type: 'image/png'});
  162.                //put the data in tile
  163.                tile._layer._setTileSrcFromBlob(tile, blob);
  164.  
  165.                //put in store
  166.                L.store.put({url: src, time: +new Date(), data: blob},
  167.                        function () {
  168.                        },
  169.                        function (event) {
  170.                            console.log('insert error ');
  171.                            console.log(event);
  172.                        }
  173.                )
  174.            }
  175.        };
  176.        xhr.send();
  177.    }
  178. })
  179.  
  180. L.store.on('ready', function () {
  181.    var map = L.map('map').setView([51.505, -0.09], 13);
  182.    var tile_layer = new L.CachedTileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
  183.        attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
  184.    });
  185.    tile_layer.addTo(map);
  186. })
 

ca fait longtemps que je ne me suis pas faut basher, lachez vous


Message édité par flo850 le 03-05-2013 à 12:21:24

---------------

n°2188769
Shinuza
This is unexecpected
Posté le 03-05-2013 à 12:32:09  profilanswer
 

Code :
  1. function getProp(obj, names) {
  2.  var i, o;
  3.  for(i = 0, l = names.length; i < l; i++) {
  4.    o = obj[names[i]];
  5.    if(o) return o;
  6.  }
  7.  throw new Error('Unable to find a valid key amongst ' + names.join(', '));
  8. }
  9.  
  10. var indexedDB = getProp(window, ["indexedDB", "webkitIndexedDB", "mozIndexedDB", "OIndexedDB", "msIndexedDB"]);

Non?

 

Et puis écris pas sur window.


Message édité par Shinuza le 03-05-2013 à 17:25:12

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2188822
flo850
moi je
Posté le 03-05-2013 à 16:56:00  profilanswer
 

:jap:


---------------

n°2188921
pop-pan
yay!
Posté le 04-05-2013 à 12:46:19  profilanswer
 

hasOwnProperty ou typeof
 
des fois y'a des setter/getter, des fois non c'est un peu bizarre au debut  
 
L.store.get() n'est pas super explicite sachant qu'il ne retourne rien, ca serait plus un "setter"
 
"if (record){if (record.src)" me semble pas super robuste (puis undefined est R/O depuis ES5 autant en profiter et faire comme si personne ne surchargeait undefined :) )
 
mais franchement a par le fait que tu attaques window si ca marche c'est tranquille :)
 
puis j'imagine que tu utilises un filler pour la console.
 
[edit]
ah si, un truc perso, je prefere utiliser "var self = this" plutot que "var that = this" ou idealement un nom de variable explicite
 
mais comme d'hab, d'abord ca marche, ensuite on refactor :)


Message édité par pop-pan le 04-05-2013 à 12:49:43

---------------
Plop !
n°2188934
GoldAdvanc​e
Audiste corrompu.
Posté le 04-05-2013 à 14:36:41  profilanswer
 

Il n'y a pas si longtemps je vous parlais d'un problème de rendu de police sous Chrome et Safari donc WebKit, notamment une font color: #FFF; sur background: #000;
 
J'ai trouvé la solution à mon problème [:vapeur_cochonne]
 
Avant
http://imageshack.us/a/img526/4667/capturedecran20130504a1.png
Après
http://imageshack.us/a/img266/4667/capturedecran20130504a1.png
 
Et la solution:

Code :
  1. -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
  2. -webkit-text-size-adjust: 100%;


 
[:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne]


---------------
Les hommes construisent trop de murs et pas assez de ponts. Isaac Newton
n°2188936
GoldAdvanc​e
Audiste corrompu.
Posté le 04-05-2013 à 14:37:56  profilanswer
 

Sinon j'ai un autre problème [:tinostar]
 
Un input qui ne veut pas entendre parler de height: 40px; vous auriez une idée?


---------------
Les hommes construisent trop de murs et pas assez de ponts. Isaac Newton
n°2188937
pop-pan
yay!
Posté le 04-05-2013 à 14:46:48  profilanswer
 

quel type d'input? dans quel contexte?
 
sinon pour webkit tu as deux possibilités :
- antialiased
- subpixel-antialiased
 
le subpix est plus propre sur du mobile et les ecran type pentiles mais rend bizarre selon le fond


Message édité par pop-pan le 04-05-2013 à 14:48:51

---------------
Plop !
n°2188940
GoldAdvanc​e
Audiste corrompu.
Posté le 04-05-2013 à 14:54:39  profilanswer
 

Ces deux propriétés ne changeaient rien au problème :/
 
input type submit :)


---------------
Les hommes construisent trop de murs et pas assez de ponts. Isaac Newton
n°2188987
FLK
Posté le 04-05-2013 à 21:04:43  profilanswer
 

Yop !
 
Jai une petite question à propos de javascript :
 
J'ai commencé une petite webapp très simple à base d'AngularJS (histoire de voir avec un exemple assez simple comment fonctionne la chose).
 
L'appli est une sorte de calculateur, en gros il y a une liste de choix, chaque choix à un nom, une quantité max sélectionnable, et une valeur, le but étant de faire le total (je simplifie le truc, en vrai c'est un peu plus intéressant que ça :o ).
 
L'appli fonctionne sans BDD, j'ai donc un .json avec mes choix :
 

Code :
  1. [
  2.   {
  3.     "name": "Choix 1",
  4.     "available": "12",
  5.     "price": "100"
  6.   },
  7.   {
  8.     "name": "Choix 2",
  9.     "available": "6",
  10.     "price": "10"
  11.   }
  12. ]


 
Je charge le bordel  

Code :
  1. var App = angular.module('App', []);
  2. App.controller('feHelperController', function($scope, $http) {
  3.     $http.get('json/items.json')
  4.         .then(function(res){
  5.             $scope.items = res.data;
  6.         });
  7. });


 
Et AngularJS se charge de m'afficher un beau tableau en fonction de mon template.
 
Maintenant j'aimerais pourvoir étendre les objets contenus dans $scope.items pour pouvoir leur rattacher dynamiquement la quantité souhaitée.
 
Evidemment y'a moyen de rajouter une propriété dans le .json que je laisse à zéro par exemple, mais il y a pas plus propre ?
 
Je suis malheureusement une bille en JS (sauf quand il s'agit de faire des trucs bien crados :D)
 
L'idée serait de créer un prototype si j'ai bien compris, que j'initialiserais avec les données de chaque objet json, avec en plus de nouvelles méthodes/propriétés, mais en gros ça revient à devoir boucler sur mon JSON, initialiser pour chaque choix un nouvel objet, construire un nouvel array avec ces nouveaux objets, puis filer à angularJS cette array au lieu de mon JSON de base.
 
Quelqu'un à une idée pour faire ça proprement et si c'est effectivement la meilleur manière de faire ?
 
Merki  :jap:


---------------
HFR sur iPhone et iPad ? HFR+ Super HFR+ !
n°2188997
Shinuza
This is unexecpected
Posté le 05-05-2013 à 01:38:58  profilanswer
 

Douglas crockford recrute:
 
https://plus.google.com/11809527622 [...] SG9RktPPUR


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2189005
flo850
moi je
Posté le 05-05-2013 à 09:49:16  profilanswer
 

Javascript et c++ ? C'est pour nraynal


---------------

n°2189056
Schimz
Bouge pas, meurs, ressuscite !
Posté le 06-05-2013 à 07:27:35  profilanswer
 

Citation :

<body onclick>
<video autoplay>


Web 3.0, le web casse-couilles [:goumite:2]


---------------
çà s'est HFR | Music for the Galaxy
n°2189057
flo850
moi je
Posté le 06-05-2013 à 09:02:04  profilanswer
 

c'est posible que ce soit juste pour forcer la mise en cache d'un media sur ios ( et donc l'avoir pret en cas de besoin)


---------------

n°2189060
nraynaud
lol
Posté le 06-05-2013 à 09:40:59  profilanswer
 

yo, c'est quoi la solution la plus simple et courte avec CSS HTML5 jquery pour disabler un bouton si un input field est invalide ?
sachant que l'input est HTML5, donc il a la pseudo-classe :invalid


---------------
trainoo.com, c'est fini
n°2189062
Proov
Art & Science
Posté le 06-05-2013 à 09:49:26  profilanswer
 

GoldAdvance a écrit :

Il n'y a pas si longtemps je vous parlais d'un problème de rendu de police sous Chrome et Safari donc WebKit, notamment une font color: #FFF; sur background: #000;
 
J'ai trouvé la solution à mon problème [:vapeur_cochonne]
 
Avant
http://imageshack.us/a/img526/4667 [...] 0504a1.png
Après
http://imageshack.us/a/img266/4667 [...] 0504a1.png
 
Et la solution:

Code :
  1. -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
  2. -webkit-text-size-adjust: 100%;


 
[:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne][:vapeur_cochonne]


 
 
Le font smoothing antialiased n'est pas un fix et le subpixel est + performant, il utilise + de pixels autour de la fonte pour lisser correctement. Perso je trouve que le deuxième est + moche que le premier mais ça n'engage que moi ^^
 
 

n°2189064
BenO
Profil: Chercheur
Posté le 06-05-2013 à 09:59:43  profilanswer
 

Vous me conseillez quoi comme ressources pour découvrir le responsive ?
Pas trop de blabla :o du concret.
 
Je fais joujou avec Twitter Bootstrap comme base.
 


---------------
Python Python Python
n°2189065
gatsu35
Blablaté par Harko
Posté le 06-05-2013 à 10:01:16  profilanswer
 

- Mobile First
- Responsive Web Design
Tous les deux de la collection A book Apart


Message édité par gatsu35 le 06-05-2013 à 10:01:54

---------------
Blablaté par Harko
n°2189066
flo850
moi je
Posté le 06-05-2013 à 10:07:49  profilanswer
 

pas mieux  
 
Le seul truc qui me gene avec bootstrap pour du responsive c'est que tout est en px, j'aurai préféré des em
 
Ceci dit bootsrap 3 sera mobile first


Message édité par flo850 le 06-05-2013 à 10:11:08

---------------

n°2189071
BenO
Profil: Chercheur
Posté le 06-05-2013 à 11:13:52  profilanswer
 

:jap: merci
 
j'hésite à passer sur bootstrap 3 directement alors [:cerveau zytrasnif]


---------------
Python Python Python
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  1250  1251  1252  ..  1454  1455  1456  1457  1458  1459

Aller à :
Ajouter une réponse
 

Sujets relatifs
blabla 3blabla 2
PUTAIN HARKO TU AS FERM2 BLABLA ![Beaucoup de blabla pour rien : post à effacer] Compiler .bat
variable1="blabla + variable2 +blala : c'est possible ??[PHP & regex] "blabla blabla file.ext?point=444 blabla" Recupérer 444
mail("celine@hotmail.com"," sujet","blabla"); pose une err ! Help[MySQL] WHERE 'blabla' compris dans le champ truc
[blabla@olympe] Le topic du modo, dieu de la fibre et du monde[PHP / BlaBla - limite]
Plus de sujets relatifs à : blabla@web


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)