Bonjour
J'ai une page d'accueil qui est construite à base de widget. Dans un de ces widgets j'ai un affichage de flux RSS, 2 actualités par flux.
Comment passer un flux si le délai de récupération est trop important ?
Merci d'avance
Bonjour
J'ai une page d'accueil qui est construite à base de widget. Dans un de ces widgets j'ai un affichage de flux RSS, 2 actualités par flux.
Comment passer un flux si le délai de récupération est trop important ?
Merci d'avance
"Winter is coming" (ma nouvelle page d'accueil)
Merci pour votre intérêt.
J'ai un paramétrage dans un widget qui me permet d'ajouter ou supprimer des flux (par l'adresse). Au chargement de la page d'accueil, sont affichées les 2 actualités de chaque flux paramétrés.
Lorsqu'un flux met du temps à répondre, ça "bloque" le chargement du widget.
J'aimerai qu'au bout d'un certain temps sur une tentative de récupération de flux, il passe au suivant si pas de réponse.
Le code de récupération de flux est classique.
Tu peux paralléliser les appels pour éviter que la page reste bloquée.
Peux-tu nous montrer comment tu fais?
A+
"Winter is coming" (ma nouvelle page d'accueil)
Voici le code d'affichage des différents flux :
Dans aRSSR sont stockées toutes les adresses des flux récupérées en base.
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 For a = 1 To UBound(aRSSR, 2) ' Lecture des flux régionaux itemCount = 0 Try rssFeed = WebRequest.Create(aRSSR(1, a)) rssReader = New XmlTextReader(rssFeed.GetResponse().GetResponseStream()) rssReader.ReadStartElement() While rssReader.Read() itemReader = rssReader.ReadSubtree() While itemReader.Read() If itemReader.IsStartElement() Then If "title" = itemReader.LocalName Then title = itemReader.ReadString() If itemCount > 1 Then ReDim Preserve aRSS(4, UBound(aRSS, 2) + 1) aRSS(0, UBound(aRSS, 2)) = aRSSR(2, a) ' Titre du flux aRSS(1, UBound(aRSS, 2)) = title ' Titre de la news End If ElseIf "link" = itemReader.LocalName Then link = itemReader.ReadString() If itemCount > 1 Then aRSS(2, UBound(aRSS, 2)) = link ' Lien de la news End If ElseIf "pubDate" = itemReader.LocalName Or "dc:date" = itemReader.LocalName Then pubdate = itemReader.ReadString() pubdate = CDate(Left(pubdate, 25)).ToString pubdate = Mid(pubdate, 7, 4) & "" & Mid(pubdate, 4, 2) & "" & Left(pubdate, 2) & "" & Hour(pubdate) * 60 + Minute(pubdate) If itemCount > 1 Then aRSS(3, UBound(aRSS, 2)) = pubdate ' Date de la news End If itemCount = itemCount + 1 End If End If If itemCount >= 4 Then Exit While End If End While If itemCount >= 4 Then Exit While End If End While Catch exp As Exception Finally If itemReader IsNot Nothing Then itemReader.Close() End If End Try Next
Le widget "Flux rss" est affiché dans la page d'accueil et son contenu appelé en ajax.
La page n'est pas bloquée, seulement le chargement du contenu du widget qui attend que tous les flux soient chargés.
"Winter is coming" (ma nouvelle page d'accueil)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager