У меня есть элемент управления диаграммой на моей странице, который имеет возможность «развернуть». Я использую карты изображений для определения возможных точек сверления. Весь этот код прекрасно работает в последних версиях Chrome и Internet Explorer.
Итак, глядя на изображение выше, слева в консоли вы видите три записи.
- Запись 1: когда диаграмма впервые загружается на страницу, это ее исходная карта изображения.
- Вступление 2: Когда пробурена Диаграмма, это карта изображения следующего уровня - эта карта отображается правильно.
- Ввод 3: отмена сверла вниз. Обратите внимание, что данные идентичны данным первой записи.
Мой правый монитор в настоящее время отображает диаграмму записи 3 и проверяет разметку HTML. Я вижу, что карта записи 3 загружена.
Тем не менее, если вы посмотрите в нижний левый угол моего правого монитора, вы увидите javascript: DrillChart ('1489'). Этот метод является частью записи 2, а НЕ записи 1 / 3.
function UndoDrillDown() {
$('#ChartLoading').show();
$.ajax({
url: '../Chart/UndoDrillDown',
data: { ReportID: reportID },
datatype: 'json',
success: Reload
});
}
function Reload(htmlImageMap) {
//Remove the old image map and then add a fresh one.
console.log(htmlImageMap);
//$('#HistoricalChartDialog').children("map").remove();
$('#HistoricalChartMap').remove();
$(htmlImageMap).appendTo('#HistoricalChartDialog');
//Fetch image associated with new image imap.
var reportID = parseInt($('#ReportSelector').val());
$('#HistoricalChart').bind('load', function () {
$(this).unbind('load');
//When drilling down it does not make sense to continue showing the old tooltip after clicking.
$('#CustomTooltip').hide();
$('#ChartLoading').hide();
$(this).show();
}).bind('error', function () {
$(this).unbind('error');
$('#ChartLoading').hide();
$('#ChartLoadingError').show();
}).attr('src', '../Chart/HistoricalChart?ReportID=' + reportID + '&cacheBuster=' + new Date().getTime());
}
Я пытался удалить свою карту изображений несколькими различными способами. Насколько я могу судить, карта изображения была удалена, но FireFox все еще помнит старые данные.
РЕДАКТИРОВАТЬ: если я скрываю HistoricalChart перед тем, как снова показывать его, тогда он работает правильно в FireFox ... Я хотел бы по возможности избежать мерцания.