Javascript 我应该在开发和部署期间使用jQuery插件的小型版本还是常规版本?
正如许多人所知,现在找到的大多数jQuery(或javascript)插件都可以作为常规格式的代码或小型版本下载,或者两者兼而有之。出于开发目的,我喜欢使用插件的非小型版本,以防我需要设置Firebug断点或出于任何原因查看它 现在,当我打包并部署应用程序时,为了提高效率,我宁愿切换到插件的小型版本。我知道要做到这一点的唯一方法是手头有两个版本,然后手动更改视图中的所有引用(我使用MVC)以指向缩小的版本,然后打包并部署。理想情况下,我也会缩小(可能会混淆)我自己的javascript文件 有谁知道一种更好、更有效的方法来开发非小型插件(为了可读性)和部署小型版本(为了效率)?你能给我指一些关于它的文章吗?我对如何处理javascript部署非常陌生,可能会对最佳实践有所了解Javascript 我应该在开发和部署期间使用jQuery插件的小型版本还是常规版本?,javascript,asp.net-mvc,jquery-plugins,minify,Javascript,Asp.net Mvc,Jquery Plugins,Minify,正如许多人所知,现在找到的大多数jQuery(或javascript)插件都可以作为常规格式的代码或小型版本下载,或者两者兼而有之。出于开发目的,我喜欢使用插件的非小型版本,以防我需要设置Firebug断点或出于任何原因查看它 现在,当我打包并部署应用程序时,为了提高效率,我宁愿切换到插件的小型版本。我知道要做到这一点的唯一方法是手头有两个版本,然后手动更改视图中的所有引用(我使用MVC)以指向缩小的版本,然后打包并部署。理想情况下,我也会缩小(可能会混淆)我自己的javascript文件 有谁
谢谢。我倾向于总是使用第三方JSs的小型版本,除非我特别需要研究它。。。在任何情况下,您都可以编写一个html帮助程序,根据某些配置插入正确的脚本名称(可以是debug或release) 你会得到这样的结果:
<%= Html.IncludeJQuery() %>
或者,如果您的所有脚本都遵循相同的约定(.min.js用于缩小版本),请在发布时在您传递的脚本上插入“.min”
<%= Html.IncludeCorrectVersionOfScript("jquery-1.4.2.js") %>
更新:
Html助手,是Mvc的HtmlHelper类的扩展方法,您可以使用它来发出ActionLink、BeginForm、EditorFor等。基本上,您可以将一个新方法(仅限albiet静态)附加到该对象,以便执行Html.MyMethod。。。。这方面的帮助程序如下:
public static class ScriptIncludeHelper
{
public static MvcHtmlString IncludeCorrectVersionOfScript(this HtmlHelper html, string script)
{
if (!html.ViewContext.HttpContext.IsDebuggingEnabled)
script = script.Replace(".js", ".min.js");
var tag = string.Format("<script type=\"text/javascript\" src=\"{0}\"></script>", script);
return MvcHtmlString.Create(tag);
}
}
公共静态类ScriptIncludeHelper
{
公共静态MvcHtmlString IncludeCorrectVersionOfScript(此HtmlHelper html,字符串脚本)
{
如果(!html.ViewContext.HttpContext.IsDebuggingEnabled)
script=script.Replace(“.js”,“.min.js”);
var tag=string.Format(“,脚本);
返回MvcHtmlString.Create(标记);
}
}
请注意,这是一个非常简化的版本(不验证字符串等)
现在,您可以使用IsDebuggingEnabled或web.config中的配置或静态配置来定义是否要包含调试版本的最小化版本
Hop this helps这是Rails如何处理它的一个示例。它可能是也可能不是最佳实践,但完全消除了开发人员的负担 包含每个环境的设置的配置文件:
# resources.yml
# example config file
development:
jquery_url: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js
test:
jquery_url: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
production:
jquery_url: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
根据当前环境将资源解析为一个变量,该变量在应用程序启动时在任何地方都会被引用
RESOURCES = YAML::parse('resources.yml')[CURRENT_ENVIRONMENT]
然后使用包含在所有页面中的基本布局或模板,而不是让每个视图或页面指定自己的设置。
指示子视图或页面的输出进入该位置
# application.html.erb
<!DOCTYPE html>
<html
<head>
<script src="<%= RESOURCES['jquery_url'] %>"</script>
</head>
<body> <% yield %> </body>
</html>
#application.html.erb
您可以使用相同的文件名,并且在您的开发环境中使用非min版本……我很感兴趣。我读过一些关于HTML助手的文章,但我不太清楚。助手具体会做什么?检查调试与发布编译符号,然后包括正确的文件?它如何知道要包含哪些文件?也许你可以在你的答案中详细说明一下…这个问题被标记为asp.NETMVC。。。这是如何与Rails链接的?