Advertisement:

Author Topic: Intégration et fonction parse_bbc  (Read 932 times)

Offline Pumputum

  • Newbie
  • *
  • Posts: 2
Intégration et fonction parse_bbc
« on: August 20, 2012, 11:54:01 AM »
Bonjour à tous,

Dans le cadre d'une intégration forum/site, j'utilise la fonction parse_bbc du forum SMF.
Néanmoins, j'ai constaté un gros ralentissement sur le serveur lorsque je l'utilise alors qu'il n'y en a pratiquement aucune lorsque c'est le forum qui l'utilise.
J'aimerai comprendre ce qui pourrait engendrer cette latence en prenant en compte que je suis chez Free. Lors de mes tests en local, je n'avais aucun ralentissement, mais lors de mes tests en ligne, le site mettait facilement 5 sec à "mouliner" avant d'afficher la page.
Lors de mes recherches, il s'est avéré qu'en supprimant la ligne correspondant à l'utilisation de parse_bbc, la page se chargeait aussi rapidement qu'à la normale.

J'utilise la fonction parse_bbc sur la colonne body de la table des messages de SMF aussi simplement que :
Code: [Select]
parse_bbc($data['body']);Le code est pleinement fonctionnel, mais le temps de chargement est excessivement long.

Avez-vous une idée d'où pourrait venir mon problème ?

Merci d'avance  :)

Offline maximus23

  • Local Moderator
  • SMF Super Hero
  • *
  • Posts: 11,469
  • Gender: Male
  • Smf 2.1 RC2
    • Smf Français Forum non Officiel
Re: Intégration et fonction parse_bbc
« Reply #1 on: August 20, 2012, 12:47:35 PM »
Bonsoir,
 
Il faut voir comment tu traites tes données dans l'ensemble de ton code. La fonction est définie ici : http://support.simplemachines.org/function_db/index.php?action=view_function;id=242.
 
De plus c'est une fonction assez simple qui fait partie de l'intégration directe SSI de Smf. Il faut peut-être la passer par un array pour alléger le tout.
 
Bon alors là chez free il suffit de lire ne nombre d'interventions et de modifications suite aux restrictions chez free on est vite fixé sur tout les problèmes qui surviennent. De simples appels de codes créent une erreur 500 car soi disant trop lourds pour eux et ils ne trouvent rien de mieux que d'effacer les tables ou modifier des fichiers pour mettre le système hors service sans aucunes préventions.
 
:)
 
 
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Offline Pumputum

  • Newbie
  • *
  • Posts: 2
Re: Intégration et fonction parse_bbc
« Reply #2 on: August 20, 2012, 02:21:30 PM »
J'utilise la fonction le plus simplement du monde grâce à SSI.php :
Code: [Select]
// Le code suivant n'est utilisé que pour tester le ralentissement
$r = 'SELECT ...' // Reste de ma requête
$r = mysql_query($r);

while($d = mysql_fetch_array($r)){
   $body = parse_bbc($d['body']);
}

C'est cette simple ligne comprenant le parse_bbc() qui semble poser problème.
Après, je me suis aussi porté sur le contenu du fichier SSI et j'ai essayé de faire une fonction maison en suivant le modèle de la fonction ssi_recentTopics().
La fonction m'apporte le résultat que je souhaite mais toujours avec la même latence alors que l'utilisation simple de ssi_recentTopics() n'apporte aucun ralentissement.
C'est bien ce qui me rend perplexe.

J'ai aussi regardé l'explication de la fonction sur le site indiqué et sur le wiki, mais je ne comprends pas en quoi je l'utilise mal.  :-\
Il y a tout de même l'incompréhension du paramètre $cache_id que je n'arrive pas à bien saisir. Mais quand bien même, en utilisant le modèle de ssi_recentTopics, j'ai laissé l'appel tel qu'il était.
Appel dans ssi_recentTopics():
Code: [Select]
$row['body'] = strip_tags(strtr(parse_bbc($row['body'], $row['smileys_enabled'], $row['id_msg']), array('<br />' => '&#10;')));
Appel dans ma fonction :
Code: [Select]
$row['body'] = parse_bbc($row['body'], 1, $row['id_msg']);
Normalement, mon appel devrait même être plus rapide vu qu'il utilise moins de fonctions. ???

Par contre, je ne comprends pas ce que vous voulez dire par "la passer en array pour alléger le tout" ?

Encore merci de vous porter sur mon problème.