Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该在开发和部署期间使用jQuery插件的小型版本还是常规版本?_Javascript_Asp.net Mvc_Jquery Plugins_Minify - Fatal编程技术网

Javascript 我应该在开发和部署期间使用jQuery插件的小型版本还是常规版本?

Javascript 我应该在开发和部署期间使用jQuery插件的小型版本还是常规版本?,javascript,asp.net-mvc,jquery-plugins,minify,Javascript,Asp.net Mvc,Jquery Plugins,Minify,正如许多人所知,现在找到的大多数jQuery(或javascript)插件都可以作为常规格式的代码或小型版本下载,或者两者兼而有之。出于开发目的,我喜欢使用插件的非小型版本,以防我需要设置Firebug断点或出于任何原因查看它 现在,当我打包并部署应用程序时,为了提高效率,我宁愿切换到插件的小型版本。我知道要做到这一点的唯一方法是手头有两个版本,然后手动更改视图中的所有引用(我使用MVC)以指向缩小的版本,然后打包并部署。理想情况下,我也会缩小(可能会混淆)我自己的javascript文件 有谁

正如许多人所知,现在找到的大多数jQuery(或javascript)插件都可以作为常规格式的代码或小型版本下载,或者两者兼而有之。出于开发目的,我喜欢使用插件的非小型版本,以防我需要设置Firebug断点或出于任何原因查看它

现在,当我打包并部署应用程序时,为了提高效率,我宁愿切换到插件的小型版本。我知道要做到这一点的唯一方法是手头有两个版本,然后手动更改视图中的所有引用(我使用MVC)以指向缩小的版本,然后打包并部署。理想情况下,我也会缩小(可能会混淆)我自己的javascript文件

有谁知道一种更好、更有效的方法来开发非小型插件(为了可读性)和部署小型版本(为了效率)?你能给我指一些关于它的文章吗?我对如何处理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链接的?