<div style="height:0;width:0;overflow:hidden;">
<!-- content here -->
</div>
Кстати, это - то, что я делаю, чтобы предварительно загрузить изображения, который хорош, потому что это не использует JavaScript.
Visibility:hidden не сделает того же самого, потому что некоторые браузеры умны и не выполнят запрос, если это не думает свое на самом деле видимое.
Не делайте этого в деструкторе, потому что он не будет вызываться, пока прикреплены обработчики событий: когда вы присоединяете метод экземпляра Foo в качестве обработчика для события Bar, Bar будет содержать ссылку на Foo, поэтому Foo не будет собираться мусором и его деструктор не будет вызываться.
Вы должны реализовать IDisposable и явно удалить свой объект
public void Dispose()
{
if (handler != null)
{
handler.Load -= Load;
handler.Close -= Close;
}
}
Если вы когда-нибудь столкнетесь с проблемой того, что класс A будет долгоживущим классом, а класс (а) B - короткоживущими, которые подписываются на события класса A, то вы, вероятно, заинтересуетесь Шаблон слабого события . Это может быть проблема, которую вы не обнаружите, пока не станет слишком поздно, например Принстонский беспилотный автомобиль.