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

C++Builder Discussion :

Vider le cache CppWebBrowser


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut Vider le cache CppWebBrowser
    Je souhaite désactiver tout cache sur ce composant, car si je demande deux fois la même page, il ne va pas la lire mais utilise le cache.
    je ne souhaites pas utiliser refresh, mais bien relancer le site par la commande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WebBrowser1->Navigate((WideString)"http://www.j.ai.pas.trouve.com/");
    je n'ai pas trouvé la commande ni l'option si elle existe sur le composant.

  2. #2
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut
    Bonjour,

    Il te suffit de changer un peu ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TVariant flags;
    flags = 2 | 4 | 8; // navNoHistory | navNoReadFromCache | navNoWriteToCache
    WebBrowser1->Navigate((WideString)"http://www.j.ai.pas.trouve.com/", &flags);
    Cordialement,

    Arnaud

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    Mercy Greybird en regardant l'aide de BCB6 j'aurais pu trouver sur 2006 c'est pas ça l'aide ...

    Néanmoins pour ce que je veux faire ça marche pas, en éffet je fais un process qui surveille les temps de réponse d'un serveur web, par exemple de façon simple en tapant sur la même page.

    je déclanche un timer et sur l'évènement <OnDocumentComplète> je compte le nombre de tick. le premier coup j'ai par exemple 8 secondes de décomptée
    et après toujours 0 (et on peut voir que la page n'est pas rechargée).
    c'est bizzare sur la page d'accueil Google ça fait ça et sur la page d'accueil Altavista ça me donne bien un temps cohérent à chaque fois (même si je ne met pas le <flags>)

    Bizzare non, des idées ou autre façon de faire ??

  4. #4
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut
    Bonjour,

    OnDocumentComplete peut se produire plusieurs fois. As-tu bien mis en place le mécanisme permettant de s'assurer qu'il s'agit bien du dernier OnDocumentComplete ? (cf aide BCB6) Dans le cas contraire, il se peut qu'une image soit en cache, et que les paramètres donnés au Navigate ne servent que pour la page en elle-même ? C'est fumeux, mais je ne vois pas trop ce qui pourrait expliquer ce genre de comportement.... Peut-être que je rate quelque chose.
    Tu peux peut être essayer d'installer Ethereal et de surveiller les requetes qui passent pour t'assurer que tout est normal. Genre pas de réponse 304 de Google ou ce genre de chose.

    Sinon, dans la mesure où il s'agit uniquement d'une application de surveillance, et où donc l'affichage de la page est inutile, je te conseille vivement l'utilisation d'un composant sans affichage graphique, du type TIdHTTP.


    Arnaud

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    Bon après avoir fait plusieurs tests TidHTTP fonctionne bien mais ne comptabilise pas le temps de chargement des images, et dans mon cas c'est important.

    l'aspect affichage est sympathique aussi dans mon application puisque je tourne sur plusieurs pages pour faire une moyenne.

    Donc le seul cas qui fonctionne c'est de créer à chaque fois un composant TCppWebBrowser dynamique pour chaque page HTML.

    Seul souci c'est que je ne suis pas arrivé à lancer une fonction sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp, Variant *URL)
    puisque le lien est justement dynamique... et je suis pas parvenu à faire le lien , si quelqu'un maitrise le sujet...

  6. #6
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Par défaut
    Citation Envoyé par Fbartolo
    Seul souci c'est que je ne suis pas arrivé à lancer une fonction sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp, Variant *URL)
    puisque le lien est justement dynamique... et je suis pas parvenu à faire le lien , si quelqu'un maitrise le sujet...
    Je ne comprend pas très bien le problème. Pourrais-tu le reformuler s'il te plait ?

    Arnaud

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    Bon j'ai trouvé une solution, qui ne me plait pas trop mais bon:

    N'arrivant pas à faire une transtypage sur l'évènement: OnDocumentComplete, afin de faire pointer une fonction classique après création dynamique de TCppWebBrowser... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TCppWebBrowser *CppWebBrowser1;
    CppWebBrowser1 = new TCppWebBrowser(Form2);
    CppWebBrowser1->ParentWindow = Handle;
    unsigned long Add;
    TVariant  Flags = (2 |4 |8 );
    DelaiWeb = 0;
    CppWebBrowser1->OnDocumentComplete = CppWebBrowser2->OnDocumentComplete;
     
    Timer1->Enabled = true;
    CppWebBrowser1->Navigate((WideString) "http://www.c.est.ca.com/",&Flags);


    J'en ai mis deux: un qui est ma référence pour alimenter les évènements On...

    et l'autre que je créé dynamiquement avec ensuite l'affectation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CppWebBrowser1->OnDocumentComplete = CppWebBrowser2->OnDocumentComplete;
    Ainsi le compilateur me permet de pointer sur les évènements (avec mon code) de l'autre CppWebBrowser..

    Ceci dit si Quelqu'un connait une manière d'écrire plus "conforme" je suis preneur.
    Car de mettre en place deux composants pour en utiliser un c'est pas top.

    Je me permet de mettre résolu par ce que cela fonctionne mais cela ne me plait pas trop..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Vider le cache d'un client
    Par dupin40 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/09/2007, 11h21
  2. écran bleu [vider mémoire cache]
    Par gilleski2010 dans le forum Périphériques
    Réponses: 2
    Dernier message: 03/08/2006, 17h56
  3. [DBA] Vider le cache
    Par mguinot dans le forum Oracle
    Réponses: 4
    Dernier message: 18/07/2006, 09h08
  4. [Cache IE] vider le cache d'IE
    Par Casp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/02/2006, 15h27
  5. Vider le cache des archives
    Par Thrystan dans le forum Debian
    Réponses: 4
    Dernier message: 30/06/2005, 10h55

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