RésoluVote 1°

Posté par miradroid le 04/01/2016 à 22h49

RésoluVote 1°

Le 04/01/2016 à 22h49

Bonjour,

Je viens de remarquer un détail, je ne sais pas si c'est normal :

Lors d'un vote sur un deal "new" de moins de 15min, depuis le PC, après le votre c'est directement affiché 1° (si c'était un vote positif) ou -1° alors qu'il ne s'agit pas de la température réelle, il faut actualiser pour la voir. Depuis Android, la bonne température s'affiche directement après le vote.

Bug du site, oubli de dev, ou irréalisable sur PC ? |D

42 commentaires

NOUVELLE REPONSE

Nombre de réponses par page

Ce paramètre s’applique automatiquement à l’ensemble des sujets.

Flux RSS des réponses

01

Page :

kingmk

Le 04/01/2016 à 23h14

#1 Signaler
Il suffit d'actualisé la page et tu verras que ça fera -2°/+2° ;)
La température réelle est de -/+1.5°, arrondie au supérieure pour l'affichage.
Ninis94

Le 04/01/2016 à 23h15 (Modifié le 04/01/2016 à 23h15)

#2 Signaler
Il suffit d'actualisé la page et tu verras que ça fera -2°/+2° ;)
La température réelle est de -/+1.5°, arrondie au supérieure pour l'affichage.
Hors sujet, il parle pas de ça :)

Bien vu MirAndroid, je l'avais aussi repéré
MatYX

Le 04/01/2016 à 23h24

#3 Signaler
En gros tu veux dire qu'en votant via le site tu ne vois pas directement la température réelle du deal ? Si c'est ça c'est tout à fait normal :)

Et oui ça ne marche pas comme ça via l'application ^^
kingmk

Le 04/01/2016 à 23h30 (Modifié le 04/01/2016 à 23h30)

#4 Signaler
Il suffit d'actualisé la page et tu verras que ça fera -2°/+2° ;)
La température réelle est de -/+1.5°, arrondie au supérieure pour l'affichage.
Hors sujet, il parle pas de ça :)

Bien vu MirAndroid, je l'avais aussi repéré

[...] il faut actualiser pour la voir. [...]
Ah oui :| en gros je le répète :D

En fait, ce serait bien que la température se mettent à jour automatiquement, même quand les autres dealabiens votent :)
Ça devrait régler ce problème aussi du coup ;)
Kalius

Le 04/01/2016 à 23h34

#5 Signaler
En fait, ce serait bien que la température se mettent à jour automatiquement, même quand les autres dealabiens votent :)
Ça devrait régler ce problème aussi du coup ;)
Des votes il y en a presque toutes les secondes, je ne pense pas que d'un point de vue serveur cela soit réalisable/souhaitable.
Surtout qu'au final cela n'apporte pas grand chose, quoi qu'il arrive la page il faut la rafraîchir régulièrement. ^^
kingmk

Le 04/01/2016 à 23h36 (Modifié le 04/01/2016 à 23h36)

#6 Signaler
En fait, ce serait bien que la température se mettent à jour automatiquement, même quand les autres dealabiens votent :)
Ça devrait régler ce problème aussi du coup ;)
Des votes il y en a presque toutes les secondes, je ne pense pas que d'un point de vue serveur cela soit réalisable/souhaitable.
Surtout qu'au final cela n'apporte pas grand chose, quoi qu'il arrive la page il faut la rafraîchir régulièrement. ^^

Pas faut, et c'est pas très utile, oui. :S
Mais pour les coms se serait bien parfois. Après oui, les serveurs... |D

Du coup il n'y a pas moyens d'actualiser au moment du vote ?
MatYX

Le 04/01/2016 à 23h40 (Modifié le 04/01/2016 à 23h44)

#7 Signaler
Du coup il n'y a pas moyens d'actualiser au moment du vote ?
La non actualisation au moment du vote c'est quelque chose de voulu, c'est pour éviter que le votant croit que son vote soit "énorme" ^^

Passer de 0° à +41° ou -25° après avoir cliqué peut être perturbant pour certains |D
gash

Le 04/01/2016 à 23h42

#8 Signaler
J'ai une suggestion, pourrais avoir accès à un vote qui inverse la température d'un deal ?

Plus sérieusement, je me demandais s'il n'étais pas possible de faire une petite anim en css ou jscript, ce serait sympa , bien que dealabs souhaite conserver un maximum de lisibilité/simplicité, je ne pense pas que cela soit trop "superflu" non ? ^^
MatYX

Le 04/01/2016 à 23h44

#9 Signaler
J'ai une suggestion, pourrais avoir accès à un vote qui inverse la température d'un deal ?

Plus sérieusement, je me demandais s'il n'étais pas possible de faire une petite anim en css ou jscript, ce serait sympa , bien que dealabs souhaite conserver un maximum de lisibilité/simplicité, je ne pense pas que cela soit trop "superflu" non ? ^^
Tu veux tout gasher c'est ça ? :D
modepadu95

Le 04/01/2016 à 23h51

#10 Signaler
Si vous voulez vous amuser, utilisez greasemonkey
Ninis94

Le 04/01/2016 à 23h55

#11 Signaler
Des votes il y en a presque toutes les secondes, je ne pense pas que d'un point de vue serveur cela soit réalisable/souhaitable.
Surtout qu'au final cela n'apporte pas grand chose, quoi qu'il arrive la page il faut la rafraîchir régulièrement. ^^
Et ça ferait du taf' au dev' alors que pendant ce temps là il pourrait jouer à la play contre Mat |o ':)
MatYX

Le 04/01/2016 à 23h57 (Modifié le 04/01/2016 à 23h57)

#12 Signaler
Et ça ferait du taf' au dev' alors que pendant ce temps là il pourrait jouer à la play contre Mat |o ':)
Va jouer avec ta PS4 gratuite au lieu de dire des conneries |D

Nos Devs sont merveilleux :3
smash

Le 05/01/2016 à 0h01 (Modifié le 05/01/2016 à 0h02)

#13 Signaler
le javascript est exécuté côté client, le php est exécuté côté serveur, donc mettre du sql dans du javascript ça va être compliqué...

je m'étais déjà confronté à ce problème en développant un module de chat à la fb-like...

limite la solution ici, ça serait d'afficher le résultat via une page externe chargée dans un div et de refresh ce div depuis le javascript avec un onclick sur les boutons de vote...
ste54000

Le 05/01/2016 à 0h10

#14 Signaler
le javascript est exécuté côté client, le php est exécuté côté serveur, donc mettre du sql dans du javascript ça va être compliqué...

je m'étais déjà confronté à ce problème en développant un module de chat à la fb-like...

limite la solution ici, ça serait d'afficher le résultat via une page externe chargée dans un div et de refresh ce div depuis le javascript avec un onclick sur les boutons de vote...
j'ai rien compris :| :| :| -_-' -_-' -_-' -_-'
MatYX

Le 05/01/2016 à 0h11

#15 Signaler
j'ai rien compris :| :| :| -_-' -_-' -_-' -_-'
Un truc de geek |D
smash

Le 05/01/2016 à 0h21

#16 Signaler

j'ai rien compris :| :| :| -_-' -_-' -_-' -_-'

on peut donc en conclure que tu ne dois pas être un développeur web ;)
Ninis94

Le 05/01/2016 à 0h35

#17 Signaler
le javascript est exécuté côté client, le php est exécuté côté serveur, donc mettre du sql dans du javascript ça va être compliqué...
je m'étais déjà confronté à ce problème en développant un module de chat à la fb-like...
limite la solution ici, ça serait d'afficher le résultat via une page externe chargée dans un div et de refresh ce div depuis le javascript avec un onclick sur les boutons de vote..
Mwouai, mais déjà que le serveur tient à peine alors si on rajoute des iframe, dû moins page externe, ça surchargera le serveur.
MmePatate.

Le 05/01/2016 à 0h45

#18 Signaler

j'ai rien compris :| :| :| -_-' -_-' -_-' -_-'

il fait exprès de parler chinois pour qu' on ne comprenne rien |o mais parfois il est gentil et parle comme tout le monde ^^
smash

Le 05/01/2016 à 0h46 (Modifié le 05/01/2016 à 1h02)

#19 Signaler
Mwouai, mais déjà que le serveur tient à peine alors si on rajoute des iframe, dû moins page externe, ça surchargera le serveur.

ce ne sont pas des iframes à proprement parler effectivement vu que ce sont des div que tu refresh avec le contenu d'une page externe et qu'au final ça ajoute qu'une page à charger à chaque vote, après c'est plus pour l'aspect technique de montrer comment c'est possible de le faire plus ou moins proprement, plus que le réel intérêt en l'état si le serveur est déjà bien attaqué...

voilà plus ou moins une partie de ce que j'avais fait à l'époque :

$('#list').on('click', 'a', function() {
var id1 = $(this).attr("id");
if (id1 == "g")
{
document.getElementById('idfriends').innerHTML = "<input name=privshout_id id=privshout_id type=hidden value='g'/>";
$("#privmessage_box"). load ("https://g.org/shout.php");
}
else
{
document.getElementById('idfriends').innerHTML = "<input name=privshout_id id=privshout_id type=hidden value="+id1+" />";
$("#privmessage_box"). load ("https://g.org/pv.php?id="+id1);
}
var id = $(this).attr("rel");
$('#'+id).hide();
$('#'+id).show();
});

mais bon ça n'est qu'une infime partie et ça donne déjà une idée...
thib3113

Le 05/01/2016 à 9h49 (Modifié le 05/01/2016 à 9h55)

#20 Signaler
UNE IFRAME !!!! :o :o :o :o :o :o :o :o :S :S :S :S :S

ça va pas la tête !!!! jamais d'iframe, beuh .... Il y à un merveilleux système pour faire ce genre de choses, on appelle ça l'ajax !!! Et si on le couple à une techno de cache, tu chargera moins le serveur ...

édit :
ah oui et le code pour vous montrez à quoi ça peux ressembler en ajax :

$('body').on('click', '#monButton', function(){
$.ajax({
url : 'get_score.php',
data : 'json',
success : function(response){
$('#monScore').html(response.score);
}
});
});

Ensuite la phrase "le javascript est exécuté côté client" n'est plus vrai depuis 2012, enfin pas plus exclusivement, depuis le nodeJs, dans lequel on peux faire du SQL :P
adealistrateur

Le 05/01/2016 à 9h59

#21 Signaler
Nous utilisons l'ajax pour les votes ;). Cependant nous avons fait le choix de ne pas retourner la vraie valeur du vote après avoir voté pour éviter que les votes ne se compensent "visuellement parlant". imaginons 2 personnes votent en même temps, l'un +1,5° et l'autre -1,5°, l'une des 2 personnes va voir aucun changement sur la température affiché du coup il ne va pas comprendre et il risque de se dire que son vote n'a pas été pris en compte...

Après les 2 affichages sont faisable, nous avons juste fait ce choix pour le moment !
Lolo691

Le 05/01/2016 à 10h00

#22 Signaler
Ah!! il vous a calmé le thib :D :D :P :P
joes80

Le 05/01/2016 à 10h02 (Modifié le 05/01/2016 à 10h03)

#23 Signaler
Même pas, car quand on vote, le rendu affiche : 1 ou -1 sur un nouveau deal, alors que la réponse de l'AJAX est :

{"error":"","ok":1,"new_deal_temperature_info":{"hot_rank":"5","hot_reach_on":"0000-00-00 00:00:00","cold_reach_on":"0000-00-00 00:00:00","hot_reach_on_by_username":null,"cold_reach_on_by_username":null,"is_hot":false,"is_cold":false}}

On a hot_rank = 5, alors pourquoi afficher 1 ou -1 si on sait que c'est 5 ?

Edit: Ah ok, la réponse d'adealistrateur se tient ^^
MatYX

Le 05/01/2016 à 10h05

#24 Signaler
Nous utilisons l'ajax pour les votes ;)
Ajax fête des fleurs :D |D

smash

Le 05/01/2016 à 10h08 (Modifié le 05/01/2016 à 10h55)

#25 Signaler
@thib3113

ça tombe bien vu que ça n'est pas une iframe mais un simple div (cf. #privmessage_box) & jquery fait déjà ça très bien ici (cf. http://api.jquery.com/load/) :

"This method is the simplest way to fetch data from the server. It is roughly equivalent to $.get(url, data, success) except that it is a method rather than global function and it has an implicit callback function. When a successful response is detected (i.e. when textStatus is "success" or "notmodified"), .load() sets the HTML contents of the matched element to the returned data. This means that most uses of the method can be quite simple:"
adealistrateur

Le 05/01/2016 à 10h15

#26 Signaler
Même pas, car quand on vote, le rendu affiche : 1 ou -1 sur un nouveau deal, alors que la réponse de l'AJAX est :

{"error":"","ok":1,"new_deal_temperature_info":{"hot_rank":"5","hot_reach_on":"0000-00-00 00:00:00","cold_reach_on":"0000-00-00 00:00:00","hot_reach_on_by_username":null,"cold_reach_on_by_username":null,"is_hot":false,"is_cold":false}}

On a hot_rank = 5, alors pourquoi afficher 1 ou -1 si on sait que c'est 5 ?

Edit: Ah ok, la réponse d'adealistrateur se tient ^^
On peut facilement le faire mais c'est un choix ^^.
joes80

Le 05/01/2016 à 10h18

#27 Signaler
Même pas, car quand on vote, le rendu affiche : 1 ou -1 sur un nouveau deal, alors que la réponse de l'AJAX est :

{"error":"","ok":1,"new_deal_temperature_info":{"hot_rank":"5","hot_reach_on":"0000-00-00 00:00:00","cold_reach_on":"0000-00-00 00:00:00","hot_reach_on_by_username":null,"cold_reach_on_by_username":null,"is_hot":false,"is_cold":false}}

On a hot_rank = 5, alors pourquoi afficher 1 ou -1 si on sait que c'est 5 ?

Edit: Ah ok, la réponse d'adealistrateur se tient ^^
On peut facilement le faire mais c'est un choix ^^.

Ouep j'ai vu ta réponse après :)
thib3113

Le 05/01/2016 à 11h15

#28 Signaler
@thib3113

ça tombe bien vu que ça n'est pas une iframe mais un simple div (cf. #privmessage_box) & jquery fait déjà ça très bien ici (cf. http://api.jquery.com/load/) :

"This method is the simplest way to fetch data from the server. It is roughly equivalent to $.get(url, data, success) except that it is a method rather than global function and it has an implicit callback function. When a successful response is detected (i.e. when textStatus is "success" or "notmodified"), .load() sets the HTML contents of the matched element to the returned data. This means that most uses of the method can be quite simple:"

j'ai lu un peu en diagonale, j'avais lu iframe j'ai blocké dessus :P.
Ensuite je l'ai fait en jquery . Le problème du load c'est que si une erreur survient coté serveur, tu ne la vérifie pas :), et au final ça fait la même chose que la fonction ajax de jquery :) .

Ensuite, je serais pour un tel fonctionnalitée, ce serais cool de tout avoir en live . Mais en même temps si c'est pour que tout lag ... non merci ..
smash

Le 05/01/2016 à 12h02

#29 Signaler
@thib3113

pas de souci ;)

sinon justement http://api.jquery.com/load/ >>>

$( "#success" ).load( "/not-here.php", function( response, status, xhr ) {
if ( status == "error" ) {
var msg = "Sorry but there was an error: ";
$( "#error" ).html( msg + xhr.status + " " + xhr.statusText );
}
});

très honnêtement, depuis le changement de serveurs, j'ai pas eu un seul problème sur le site et d'ailleurs comme déjà dit par ailleurs même quand j'ai une bande passante moisie ou un cpu à 100% dealabs c'est sûrement l'un des sites dont les pages se chargent le plus rapidement ou même se chargent tout court, j'ai pas franchement l'impression que le nouveau serveur soit dans les choux là...

d'autant que comme le disait Adeal ils se servent déjà d'ajax pour ça en prenant la valeur à chargement de la page et en ajoutant le seul poids du vote du user, mais qu'ils n'affichent pas le résultat exact dans un souci d’homogénéité et de compréhension, donc avant tout pour d'autres raisons que les seules performances, ce qui se tient aussi...
Tomy944

Le 05/01/2016 à 12h06 (Modifié le 05/01/2016 à 12h06)

#30 Signaler
@thib3113

pas de souci ;)

sinon justement http://api.jquery.com/load/ >>>

$( "#success" ).load( "/not-here.php", function( response, status, xhr ) {
if ( status == "error" ) {
var msg = "Sorry but there was an error: ";
$( "#error" ).html( msg + xhr.status + " " + xhr.statusText );
}
});

très honnêtement, depuis le changement de serveurs, j'ai pas eu un seul problème sur le site et d'ailleurs comme déjà dit par ailleurs même quand j'ai une bande passante moisie ou un cpu à 100% dealabs c'est sûrement l'un des sites dont les pages se chargent le plus rapidement ou même se chargent tout court, j'ai pas franchement l'impression que le nouveau serveur soit dans les choux là...

d'autant que comme le disait Adeal ils se servent déjà d'ajax pour ça en prenant la valeur à chargement de la page et en ajoutant le seul poids du vote du user, mais qu'ils n'affichent pas le résultat exact dans un souci d’homogénéité et de compréhension, donc avant tout pour d'autres raisons que les seules performances, ce qui se tient aussi...

une fois que tu es passé par le site Cdiscount tu es roder niveau chargement de page... mais j'avoue que depuis la migration vers les nouveaux serveurs le site tourne carrément mieux ;)
smash

Le 05/01/2016 à 12h10 (Modifié le 05/01/2016 à 12h11)

#31 Signaler

une fois que tu es passé par le site Cdiscount tu es roder niveau chargement de page... mais j'avoue que depuis la migration vers les nouveaux serveurs le site tourne carrément mieux ;)

cdiscount le serveur en charge de la partie client, c'est sûr que lui y a des moments il part bien en live, sinon ceux qui prennent cher aussi c'est zapals les jours de deals gratuits, enfin ils ont configuré un timeout de fou parce que ça passe quand même au final, mais bon même aliexpress le jour de noël ils ont eu du mal à certains moments et puis quand tu vois l'état des playstation stores depuis hier, tout est dit...
Tomy944

Le 05/01/2016 à 12h15

#32 Signaler
pour moi il y a pas pire que Cdiscount... et pourtant j'ai la fibre...

Une Attaque de DDoS sur le Store ? xD
smash

Le 05/01/2016 à 12h20 (Modifié le 05/01/2016 à 12h21)

#33 Signaler

Une Attaque de DDoS sur le Store ? xD

y a des rumeurs, mais pas d'indication officielle sur l'origine de la panne, juste un maintenance terminée aujourd'hui avec le retour des services...

j'ai bien fait de prendre bloodborne sur le ca juste avant tant que c'était encore en soldes ;)
thib3113

Le 05/01/2016 à 13h39

#34 Signaler
le problème n'est pas que ça lag coter client, mais coté serveurs . Si on passe d'une requete par user par minutes à 1/s on multiplie la charge du serveur, et donc le prix de l'infrastructure and co ...
Niveau client, vu que l'on passe par cloudflare, il doit compresser les données et faire un système de cache . Donc ce n'est pas le problème .
smash

Le 05/01/2016 à 15h08 (Modifié le 05/01/2016 à 15h15)

#35 Signaler
le problème n'est pas que ça lag coter client, mais coté serveurs . Si on passe d'une requete par user par minutes à 1/s on multiplie la charge du serveur, et donc le prix de l'infrastructure and co ...
Niveau client, vu que l'on passe par cloudflare, il doit compresser les données et faire un système de cache . Donc ce n'est pas le problème .

un système de cache externe sur des requêtes sql dynamiques non puisque c'est de ça dont on parle ici, soit juste une requête sql dans un fichier externe php pour afficher un compteur à jour et dans ce cas là cloudflare, n'ayant pas accès à ta base de données (bien heureusement), ne peut rien faire pour toi et c'est de toutes façons pas ça qui va te faire passer à un plateau d'une requête/seconde par user au lieu d'une minute, loin de là puisqu'on est sur un bien plus faible rapport que ça...

le cache externe c'est bien pour afficher un ersatz statique en cas de problème sur la destination finale ou pour déporter tout ce qui n'est pas dynamique histoire surtout de minimiser le nombre de requêtes http simultanées et ne pas mettre ton serveur web en déni de service, après tu peux avoir un système de cache propre à ta base de données sql (ou autres) pour les résultats de requêtes sql redondantes/lourdes et plus ou moins inaliénables, mais ça ne s'applique pas non plus ici vu la nature dynamique des requêtes dont on parle ici, c'est plutôt pour des formats de type catalogue...

après si tu étais sur une infrastructure de type cloud où tu payes à la ressource consommée, je te dirais oui éventuellement, mais là sur un serveur dédié classique, il faut faire le rapport entre le nombre moyen de votes en pic de consommation de ressources et le nombre de requêtes sql supplémentaires afin de définir si tu peux absorber ou pas la charge additionnelle, aussi vis-à-vis du nombre maximum de requêtes sur lequel ton serveur de base de données a été configuré en fonction des ressources du serveur l'hébergeant...

dans le contexte et si ça n'est pas le cas, c'est qu'en général tu es déjà sur un serveur qui est sous-taillé pour tes besoins vu le faible nombre de requêtes additionnelles que ça représente au final par rapport à l'ensemble de la consommation moyenne estimée ;)
thib3113

Le 05/01/2016 à 15h56

#36 Signaler
je ne parler pas de mettre en cache les retours des requètes ajax ... je disais juste que cloudflare doit tout faire pour que ton navigateur ne lag pas. Il compresse donc tout ce qu'il peux et met en cache tout ce qui est images, script et html . Niveau requete ajax, il faut vraiment y aller fort pour faire laguer un navigateur ...

Je disais juste que si on fait des requetes comme ça, multiplié par le nombre d'utilisateurs, ça va vite être le gros gros bazar ... Enfin, pas si on adapte la charge du serveur and co ... je parle de m'adapter au serveur et pas l'inverse

smash

Le 05/01/2016 à 16h47 (Modifié le 05/01/2016 à 16h50)

#37 Signaler
cloudflare c'est bien pour ceux dont ça n'est pas le cœur de métier et ça vulgarise des procédés complexes qui ne sont pas toujours maîtrisés, mais ça peut aussi se retourner contre les utilisateurs, cf. notamment les attaques par amplification ntp (ou dns) à plusieurs centaines de gb/s avec des hébergeurs qui ont été obligés de couper sans prévenir les serveurs des clients impactés parce qu'ils utilisaient cloudflare...

après les optimisations tu peux aussi les faire toi-même, déjà rien que mettre un serveur nginx en frontal d'un serveur apache, ça te donne déjà beaucoup de flexibilité et un peu plus de tranquillité si tu couples ça entre autres à une solution de type waf comme mod_security et un bon ensemble de règles iptables/shorewall pour le firewalling réseau...
allo

Le 05/01/2016 à 17h01 (Modifié le 05/01/2016 à 17h02)

#38 Signaler
... et si on intégrait du Flash avec des effets ? Sinon, on pourrait utiliser la balise "blink" pour les votes :)
gash

Le 05/01/2016 à 17h16

#39 Signaler
... et si on intégrait du Flash avec des effets ? Sinon, on pourrait utiliser la balise "blink" pour les votes :)

du flash ? quel horreur ! et la balise blink.. existe encore ?
thib3113

Le 05/01/2016 à 21h32

#40 Signaler
les deux existe mais les deux ne sont plus supportés ( adobe abandonne enfin flash !!! )

Laisser une réponse

Des champs obligatoires n’ont pas été remplis, ou l’ont été incorrectement.