private void button1_Click(object sender, EventArgs e)
{
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
path = folderBrowserDialog.SelectedPath;
fileSystemWatcher.Path = path;
string[] str = Directory.GetFiles(path);
string line;
fs = new FileStream(str[0], FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
tr = new StreamReader(fs);
while ((line = tr.ReadLine()) != null)
{
listBox.Items.Add(line);
}
}
}
private void fileSystemWatcher_Changed(object sender, FileSystemEventArgs e)
{
string line;
line = tr.ReadLine();
listBox.Items.Add(line);
}
Если вы внедряете HTML-фрагмент фрагмента изображения, вы можете поместить его в промежуток и позже манипулировать html.
Например:
<div id="topNav">
<span class="unloaded">
<noscript>
<img src="https://www.jpl.nasa.gov/images/universe/20170802/heliophysics-16.jpg">
</noscript>
</span>
<div class="heightTest">
</div>
<span class="unloaded">
<noscript>
<img src="https://www.jpl.nasa.gov/images/universe/20170802/heliophysics-16.jpg">
</noscript>
</span>
</div>
Затем посмотрите его с помощью JavaScript:
function isElementInViewport (el) {
var rect = el.getBoundingClientRect();
return (
rect.top >= 0 &&
rect.left >= 0 &&
rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
);
}
var images = document.getElementsByClassName('unloaded');
function checkImages() {
var clean = false;
for(var i=0; i<images.length;i++){
var el = images[i];
if(isElementInViewport(el)){
//replace the span's innerhtml with the noscript innerhtml.
el.innerHTML = el.childNodes[1].innerHTML;
//remove the class, since it's now loaded.
el.classList.remove("unloaded");
//we changed at least one element, so we'll want to get a new clean list.
clean = true;
}
}
if(clean == true){
images = document.getElementsByClassName('unloaded');
}
}
checkImages();
window.addEventListener('scroll', checkImages, false);
Таким образом, вы ждете, пока событие не изменит любой HTML. Преимущество здесь в том, что если javascript не работает, изображения будут загружаться в любом случае. Кроме того, поскольку это диапазон, вы можете установить размер и фон для серого значка загрузки через css для класса диапазона «unloaded».