2008-11-08 9 views
5

¿Cómo han manejado ustedes trabajar con jQuery incluyemanera limpia de tener jQuery incluye con ASP.Net MVC

<script type="text/javascript" src="jquery.js"></script> 

en Asp.Net MVC cuando se trabaja con los controles parciales vistas/ver? Básicamente, no quiero hacer que jquery se incluya en la página maestra porque no estoy usando jquery en todas mis vistas, pero también quiero una forma fácil para que un usuario pueda crear el jquery incluido en la derecha. ubicación ('cabeza') sin crear incluye jquery duplicado.

La mejor manera sería utilizar un ScriptManaager, pero no quiero confiar en ASP.Net Ajax para esto en mi aplicación. ¿Existe un ScriptManager 'liviano' que pueda usar que también permita el intellisense recién lanzado para jquery?

He creado un WebControl que proporciona esta funcionalidad, pero no recibo el soporte intellisense para VS2008, que realmente me gustaría.

Espero que esto tenga sentido.

Respuesta

13

Si utiliza JQuery en un alto porcentaje de sus páginas, simplemente lo pondría en la página maestra. Solo se descargará una vez en el que se almacenará en la memoria caché del navegador y tendrá un impacto insignificante en el rendimiento para procesar su página.

0

Siempre se puede hacer esto:

hacer una util.js ligeros que se encuentra en cada página, en ella se puede poner varias cosas comunes, además de esto:

function loadJSInclude(scriptPath, callback) 
{ 
    var scriptNode = document.createElement('SCRIPT'); 
    scriptNode.type = 'text/javascript'; 
    scriptNode.src = scriptPath; 

    var headNode = document.getElementsByTagName('HEAD'); 
    if (headNode[0] != null) 
     headNode[0].appendChild(scriptNode); 

    if (callback != null)  
    { 
     scriptNode.onreadystagechange = callback;    
     scriptNode.onload = callback; 
    } 
} 

Luego, en su opinión , basta con colocar:

<script type='text/javascript'> 
    if(typeof(someJqueryObject) == "undefined")   
     loadJSInclude('jquery.js', doYourStuff);   
    else   
     doYourStuff(); 

    function doYourStuff() 
    { 
     // jQuery will be loaded now, so you can do your stuff here. 
    } 
</script> 
+1

pero usted no conseguirá el buen intelisense con este – Jake

3

No está seguro de cómo hacer esto con sólo vistas parciales a pesar de que podría hacerlo sobre una base de página por página con la tecnología existente.

Puede crear un ContentPlaceHolder en su página maestra dentro de la etiqueta de encabezado. Que en sus controles de usuario simplemente ponga el jQuery incluido en el área de contenido de ContentPlaceHolder de sus páginas.

1

Ahh tratando de publicar esto me está volviendo loco causa que está siendo tratado como parte de la página ... pero

<script src="<%=Url.Content("~/Content/js/jquery-1.2.3.min.js") %>" type="text/javascript"></script> 
Cuestiones relacionadas