使用ASP.NETMVC实现jquery包含的干净方法
你们是如何处理jqueryincludes的使用ASP.NETMVC实现jquery包含的干净方法,jquery,asp.net-mvc,Jquery,Asp.net Mvc,你们是如何处理jqueryincludes的 <script type="text/javascript" src="jquery.js"></script> 在Asp.NETMVC中使用部分视图/视图控件时?基本上,我不想让jquery包含在母版页中,因为我不是在所有视图中都使用jquery,但我还希望用户控件能够以一种简单的方式在正确的位置(“头”)创建jquery包含,而无需创建重复的jquery包含 最好的方法是使用ScriptManager,但我不想在我的
<script type="text/javascript" src="jquery.js"></script>
在Asp.NETMVC中使用部分视图/视图控件时?基本上,我不想让jquery包含在母版页中,因为我不是在所有视图中都使用jquery,但我还希望用户控件能够以一种简单的方式在正确的位置(“头”)创建jquery包含,而无需创建重复的jquery包含
最好的方法是使用ScriptManager,但我不想在我的应用程序中依赖ASP.NETAjax。我是否可以使用一个“轻量级”脚本管理器来支持新发布的intellisense for jquery
我已经创建了一个WebControl来提供这一功能,但是我没有得到VS2008的intellisense支持,这是我真正想要的
希望这是有意义的。您始终可以这样做: 制作一个轻量级的util.js,它包含在每个页面中,您可以在其中放置各种常见内容,另外还有:
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;
}
}
然后,在您看来,只需放置:
<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>
if(typeof(someJqueryObject)=“未定义”)
loadJSInclude('jquery.js',doYourStuff);
其他的
doYourStuff();
函数doYourStuff()
{
//jQuery现在将被加载,所以您可以在这里完成您的工作。
}
不知道如何仅使用部分视图进行此操作,尽管您可以使用现有技术逐页进行此操作
您可以在head标记内的母版页中创建ContentPlaceHolder。而不是在用户控件中,只需将jQuery包含放在页面的ContentPlaceHolder内容区域。如果在大部分页面中使用jQuery,我会将其放在母版页中。它只会被下载一次,此时它会被缓存在浏览器上,对页面的呈现性能影响微乎其微。啊,试图发布这篇文章让我发疯,因为它被视为页面的一部分。。。但是
<script src="<%=Url.Content("~/Content/js/jquery-1.2.3.min.js") %>" type="text/javascript"></script>
但这样做不会让您获得良好的智能感知