Хорошо, сначала некоторый фон: у Меня есть страница, показывающая количество хитов (или представления) любого выбранного пункта. Процедура счетчика посещений, которую называют при каждой загрузке страницы т.е.
if (Request.QueryString.HasKeys())
{
// get item id from icoming url e.g details.aspx?itemid=26
string itemid = Request.Params["itemid"];
if (!Page.IsPostBack)
{
countHit(itemid);
}
}
Проблема: мое ожидание состояло в том, что счетчик будет увеличен на 1 на каждой загрузке страницы, но счетчики на моем datalist и formview всегда находятся позади и ступили 2 т.е.
вместо 1, 2, 3, 4
, это 0, 2 , 4, 6
.
Кажется, что загрузка страницы стреляет дважды. Позже я обнаружил, что это только происходит при использовании Mozilla Firefox. Страница ведет себя прекрасная с другими браузерами как IE
Это становление довольно печальным.
Из того, что я вижу в вашем вопросе Проект Voldemort кажется самым близким. Посмотрите на страницу проектирования .
Единственная проблема, которую я вижу, заключается в том, как он будет обрабатывать огромные файлы, и, согласно этому потоку , не все хорошо. Но вы всегда можете обойти это довольно легко с помощью файлов. В конце концов - это точное назначение файловой системы. Посмотрите на список википедий файловых систем - список огромный.
-121--3213541-Обычно причина, по которой page_load инициируется дважды, заключается в том, что в ascx/aspx И событие Load связывается с методом Page_Load явно (в кодовом коде).
Но тогда вы должны видеть такое поведение во всех браузерах.
-121--4096453- Я дважды видел Page_Load пожар, если на странице < asp: Image >
или < img runat = «server» >
не указан атрибут src
.
Возможно, стоит посмотреть.
Наиболее вероятной причиной в том, что вы вызываете процедуру дважды.
Обычно причина, по которой страница_load уходит дважды, - это то, что у вас есть autoventwireup = true в ASCX / ASPX, и вы явно связываете событие нагрузки на метод Page_Load Counce (в кодовом месте).
Но тогда вы должны увидеть это поведение во всех браузерах.
Я знаю следующие вещи.
Если у вас есть элемент управления img с пустой строкой, назначенной атрибуту src. Возможно, вы забыли назначить imageurl или хотели назначить imageurl в коде позади на основе некоторых condition, и это условие никогда не выполняется и в итоге оказывается пустой строкой, присвоенной атрибуту src, когда ASP.Net отображает страницу.
Если у вас есть пустая строка, назначенная атрибуту href для ссылки html для таблицы стилей.
Если для скрипта установлен пустой атрибут src.
для получения дополнительной информации обратитесь к этой статье . http://patelshailesh.com/index.php/page_load-event-fires-twice-with-firefox-only
У меня тоже была такая проблема. В моем случае firebug вызывал дополнительный вызов.