2010-10-29 12 views
0

Je ne sais pas où j'ai eu l'idée avant, mais il y a un an, j'ai écrit cela en php:code de service côté Référence du <script> tag

<script type="text/javascript" src="http://www.mydomain.com/getmarkers.php"></script> 

Maintenant, je suis prêt à convertir ce site à un Site Web ASP.NET MVC et je me demande quel est le meilleur moyen de convertir cela en quelque chose de plus «normal».

Les options que je pouvais penser où:

  1. personnalisés HttpHandler pour les fichiers .js
  2. continuer à utiliser la balise de script, mais avec un itinéraire personnalisé pour une action
  3. Modifier le javascript pour charger le Serverside données utilisant un appel ajax

Ce que fait actuellement getmarkers.php est de générer du javascript pour ajouter des marqueurs à une carte google. L'avantage de référencement le php dans la balise de script est que

  1. Il n'a jamais mis en mémoire cache, les marqueurs sont toujours à jour (je sais qu'il existe des alternatives)
  2. Il garde mon html clair de tout javascript
  3. Très facile à ajouter/supprimer certains champs pour les marqueurs générés

Un exemple de ce qui est généré:

infoWindows[0] = new google.maps.InfoWindow({ 
    content: '<div style="width:250px;color:#000;">...html content for this specific marker...</div>' 
}); 

google.maps.event.addListener(markers[0], 'click', function() { 
    infoWindows[0].open(map, markers[0]); 
}); 

Quels changements est l'indice (0 dans cet exemple) et le contenu du code HTML.

Question
1. Quelle solution pensez-vous convient le mieux
2. Est-il mauvais pour référencer un script en appelant un Serverside 'fichier'.

Répondre

1

Je ne vois aucun inconvénient à l'intégration de fichiers .js générés par le serveur. Personnellement, je choisirais l'option "route personnalisée" donc il est clair qu'il s'agit d'un fichier généré, laissant l'extension .js aux ressources statiques.

Cependant, au service des marqueurs dans un pur format de données comme JSON, et les charger en utilisant Ajax aurait les avantages que

  • vous avez les données dans un neutre format « méta » que vous pouvez re- utiliser ailleurs sans avoir à créer une nouvelle source de données

  • Vous pouvez conserver le processus de chargement/HTML en un seul endroit, la page parent ou l'un de ses scripts statiques, au lieu de contrôler la façon dont le HTML apparaît dans le serveur ... écriture latérale

  • la quantité de données transférées est probablement réduite

  • Il est globalement

+0

+1 nettoyant pour la pointe « il est clair qu'il est un fichier généré, laissant le.js extension vers des ressources statiques "Ma préférence est penchée vers une approche json aussi en utilisant ajax pour obtenir le json.Il faudrait juste plus de temps pour la carte pour générer que le contenu sera chargé après que le corps est chargé, maintenant il charge avant. – Peter

+0

@Peter vrai, c'est un bon point.Il y aura forcément un scintillement notable lors de l'utilisation Ajax –