Google Chrome 发生了一些奇怪的事情。我打开任何网站,无论我打开 google.com 还是我正在从事的任何开发都没有关系。起初,它工作得很好,但如果我打开开发人员工具,通过按下F12或右键单击任何元素来检查它,页面将不会再次加载,告诉我没有连接(包括恐龙)。
无论我按 F5 多少次重新加载网站,如果开发人员工具打开,它就不会重新加载页面。但是,如果我关闭工具(不是浏览器,它保持打开状态)并再次按 F5,页面将完美重新加载。
我已经在 Edge 上尝试过了,无论是否使用开发工具,它都可以正常工作。
这里不涉及任何代码。正如我所说,无论是我创建的本地网站还是任何公共网站(如 Google、Facebook),只要你能想到的,都没有关系。行为是一样的。
有人知道发生了什么事吗?
我在使用C#的ASP.NET中有一个静态变量的问题.我在webform中声明变量.
public partial class Logueado_Movimientos : System.Web.UI.Page
{
static List<ExchangeItems> theList;
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostback) return;
theList = GetListValues();
}
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我们测试了网站,没有发现问题,部署了它......但是在生产环境中发生了一些奇怪的事情.这个网站每天都在使用,只有两次,情况已经发生.
ExchangeItems有一个ID属性,它返回数据库中每个要交换的项的id.页面加载时只调用一次GetListValues()方法.之后,用户可以通过单击GridView中的复选框选择要交换的项目,进行进一步的验证,然后有一个"打印并保存"按钮,使用iTextSharp打印到PDF并将状态发送回数据库.
在所有验证之后,该项目已在生产中更改两次.例如,项目180是正在交换的项目,但是当打印和保存文档时,结果是项目103是处理的项目.所有先前的验证都将ID设置为180.项目103甚至不在列表中.
现在,检查数据库(SQL Server),我们发现项目103在项目180后10分钟保存.我们使用GetDate()函数来存储日期和时间.此外,他们被两个不同的用户分配给不同的客户.
用户可能需要10分钟来处理请求,有时他们会与客户通话.这意味着user1正在使用项目180,而user2正在使用项目103,两者都使用相同的模块/ webform.由于变量是静态的,两个用户是否可能正在影响彼此的信息?我现在宣称它是"私人静态",只是出于偏执,但还有什么我不知道的吗?
注意:变量是静态的,因为如果没有声明,则回发会丢失它的值.它不在Session变量中,因为它仅用于该模块/ webform,而不是其他地方.