8
votes

Arrêtez la page Master Rafraîchissant tout en naviguant entre les pages?

J'utilise la page Master dans mon application ASP.NET, dans la page principale, je mets un contenus dans le panneau de mise à jour pour prendre en charge Ajax dans les pages enfants, la question est la suivante ?

Pour la navigation entre les pages, j'ai essayé d'utiliser réponse.ReRirect , script windows.location java sans succès, dois-je utiliser les cadres ou les iframes au lieu de pages maîtres arrêter de rafraîchir?

Toute suggestion à résoudre ce problème sera très appréciée, merci d'avance ...


0 commentaires

3 Réponses :


1
votes

avoir une structure comme celle que vous avez expliquée:

  • maître
    • Enfant Page 1
    • Enfant Page 2
    • ...

      Ensuite, vous ne pouvez pas empêcher la page de rafraîchir la page 1 à la page 2, etc. Car vous avez une seule "page" (Contenu maître + Contenu de la page sélectionné) lorsqu'il est rendu au navigateur.

      Si vous souhaitez basculer entre différentes vues d'applications à la même page (afin d'éviter une actualisation complète de la page), vous pouvez utiliser une seule page (le maître devient assez inutile) avec un UpdatePanel dans lequel vous chargez les différentes vues.

      Vous pouvez également utiliser des iframes, mais si vous devez gérer tout type de communication entre différentes parties de la page (dont certaines sont à l'intérieur des iframes), je conseillerais personnellement à ne pas les utiliser.



2
votes

Un masterpage n'est rien de plus que d'étendre votre page "normale" avec (la plupart du temps) la disposition par défaut de votre application. La page principale et les supports de contenu sont rendus comme une page HTML complète. Lorsque vous naviguez entre les pages, c'est le comportement normal que toute votre page vous rafraîchit. Voici comment fonctionne le web.

Travailler avec un iframe pourrait résoudre votre problème. Cependant, cela a d'autres effets secondaires:

  1. Le maître-chef entier n'est plus utile. Le contenu autour de votre iframe est le "Masterpage".

  2. Avec un MasterPage, vous parcourez une autre URL, vous voyez également dans la barre d'URL de votre navigateur. Lorsque vous travaillez avec un iframe, vous naviguez dans l'iframe à une autre page. L'URL de votre navigateur restera la même. Lorsque l'utilisateur de votre application frappe le bouton Actualiser, il redémarre toujours à la page par défaut que vous avez attribuée à votre iframe dans le HTML. Bien sûr, il y a des solutions de contournement

    Quoi qu'il en soit. Cela dépend vraiment de votre application. Il existe plusieurs solutions pour travailler autour du comportement de rafraîchissement.


5 commentaires

Merci, j'ai résolu le problème rafraîchissant en utilisant des cadres, mais je cherche une autre façon de résoudre ce problème, imaginez que vous avez une barre de navigation sur le côté gauche et les pages du côté droit de la page, je veux en cliquant sur Article dans la barre Navère pour ne pas publier la page du trou.


Ce n'est pas un post-plan. Vous demandez simplement une autre URL et le serveur vous renvoie un tas de HTML rendu par le navigateur. Quel est votre plus gros problème / préoccupation quand il s'agit de tout rafraîchissant?


Le problème de rechargement du logo et de la barre de navigation et du pied de page, ce qui entraîne lentement sur le site Web, l'exigence est de rendre le site Web autant que nous pouvons comme application Windows, ce qui ne peut pas être effectué sans supporter complètement Ajax.


C'est logique. Dans ce cas, travailler avec des iframes ne résout pas vraiment votre "problème" alors. Le contenu de l'IFRAME sera également chargé. Cela peut provoquer un cadre blanc si le site ou la connexion est lent.


Merci pour votre temps, je travaille savoir sur la conversion des pages Web en usercontrols et charger les commandes à l'aide de la fonction LoadControl Fonction à l'intérieur du panneau de mise à jour, il semble bon mais il y a beaucoup de difficultés et de problèmes que j'essaye de résoudre. Iframe est bon, j'ai vu que Gmail l'utilise pour résoudre ce problème.



5
votes

Si vous ne voulez pas que la page soit actualisée lors de la commutation entre "pages", vous n'aurez aucune solution à la page principale. Comme d'autres l'ont dit dans différents mots, la page maître n'est qu'un "modèle" commun utilisé par différentes pages. La navigation entre est tout comme appelant différentes pages, et bien sûr rechargera la page entière, y compris le contenu de la page maître.

  1. Un Sollution que j'ai utilisé avec Ajax est avoir chaque "page" en tant qu'utilisateur contrôles, et mettez-les tous dans un Updatepanel avec visible = "false" . Puis pour la navigation entre "pages", commutateur Visibilité pour les contrôles utilisateur pour montrer la droite "page" Control.

  2. L'alternative consiste à utiliser iframe.

    Aucune de ces solutions n'utilise Masterpage.

    Le concept MasterPage a été conçu pour simplifier un look commun avant que Ajax ait été introduit dans ASP.NET. Après que Ajax est devenu populaire, la demande de non-rafraîchissement de la page entière a été plus courante.


1 commentaires

Merci pour votre message, j'ai essayé la première solution sans mettre toutes les commandes de la page, au lieu de cela, j'ai créé les contrôles au moment de l'exécution, beaucoup plus rapide et meilleur, :( Finalement je suis retourné aux cadres parce que beaucoup de problèmes sont arrivés Dans le code de script Java. Maintenant, les cadres ont résolu ce problème pour vous merci pour tous.