“JavaScript Hell” - 就像“DLL Hell”

时间:2016-02-17 19:34:28

标签: javascript asp.net

我有一个ASP.NET网页,如下所示:

<%@ Page Language="VB" MasterPageFile="~/LGMaster.master" AutoEventWireup="false" Inherits="com.Genie.PresentationLayer.Web.frmPNList" title="Primary Nominals results list - RESTRICTED" Codebehind="frmPNList.aspx.vb" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">

<script type="text/javascript"  src="Javascript/json2.js"></script>
<script type="text/javascript"  src="Javascript/massusnchange1014.js"></script>
<script type="text/javascript" src="Javascript/jquery-1.11.1.min.js"></script>

</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:PlaceHolder runat="server" ID="NextBits" />
    <%--<input id="btnSave"  type="button" value="Group USN Change" onclick="GroupUSNChange();"/>--%>
    <%--<asp:Button ID="ButtonSetUSN" runat="server" Text="Set USN" OnClientClick="GetNewUSN()"></asp:Button>--%>     
    <asp:HiddenField ID="hfUSN" runat="server" ClientIDMode="Static" />
    <asp:HiddenField ID="hfGenieConnectionString" ClientIDMode="Static"  runat="server" />
    <asp:HiddenField ID="hfUserName" ClientIDMode="Static"  runat="server" />
    <button onclick="GetNewUSN()">Change USN of Group</button>
</asp:Content>

每次我更改为:massusnchange1014.js我必须将其增加1,例如下一个版本将是:massusnchange1015.js,否则我会收到错误,暗示asp.net网页正在使用上一版本。

为什么会这样?

1 个答案:

答案 0 :(得分:1)

因为您的浏览器通过缓存内容来帮助您。就像之前看到的图片一样,浏览器会缓存它为URL返回的响应。如果URL发生变化,它会再次获取内容。否则,它不知道你已经改变了它。

你有几个选择。

使用ASP.NET的ClientScriptManager捆绑你的JS - 它处理这样的变化。

如果您需要将它们保留为单个文件,则可以在URL上附加文件的时间戳以生成新的URL。