enhanced image search result display: concurrent loading of images before they are displayed

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7109 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
orbiter 14 years ago
parent 72a096fccb
commit ae07e11bc5

@ -173,6 +173,7 @@ public class yacysearchitem {
if (ms == null) { if (ms == null) {
prop.put("content_item", "0"); prop.put("content_item", "0");
} else { } else {
sb.loader.loadIfNotExistBackground(ms.href.toNormalform(true, false), 1024 * 1024 * 10);
prop.putHTML("content_item_hrefCache", (auth) ? "/ViewImage.png?url=" + ms.href.toNormalform(true, false) : ms.href.toNormalform(true, false)); prop.putHTML("content_item_hrefCache", (auth) ? "/ViewImage.png?url=" + ms.href.toNormalform(true, false) : ms.href.toNormalform(true, false));
prop.putHTML("content_item_href", ms.href.toNormalform(true, false)); prop.putHTML("content_item_href", ms.href.toNormalform(true, false));
prop.put("content_item_code", sb.licensedURLs.aquireLicense(ms.href)); prop.put("content_item_code", sb.licensedURLs.aquireLicense(ms.href));
@ -240,5 +241,4 @@ public class yacysearchitem {
size = size / 1024; size = size / 1024;
return size + " gbyte"; return size + " gbyte";
} }
} }

@ -512,6 +512,7 @@ public class HTTPClient {
private void storeConnectionInfo(final HttpUriRequest httpUriRequest) { private void storeConnectionInfo(final HttpUriRequest httpUriRequest) {
final int port = httpUriRequest.getURI().getPort(); final int port = httpUriRequest.getURI().getPort();
final String thost = httpUriRequest.getURI().getHost(); final String thost = httpUriRequest.getURI().getHost();
assert thost != null : "uri = " + httpUriRequest.getURI().toString();
ConnectionInfo.addConnection(new ConnectionInfo( ConnectionInfo.addConnection(new ConnectionInfo(
httpUriRequest.getURI().getScheme(), httpUriRequest.getURI().getScheme(),
port == 80 ? thost : thost + ":" + port, port == 80 ? thost : thost + ":" + port,

@ -347,7 +347,11 @@ public final class LoaderDispatcher {
} }
public void loadIfNotExistBackground(String url, File cache, long maxFileSize) { public void loadIfNotExistBackground(String url, File cache, long maxFileSize) {
new Loader(url, cache, maxFileSize).start(); new Loader(url, cache, maxFileSize, CrawlProfile.CacheStrategy.IFEXIST).start();
}
public void loadIfNotExistBackground(String url, long maxFileSize) {
new Loader(url, null, maxFileSize, CrawlProfile.CacheStrategy.IFEXIST).start();
} }
private class Loader extends Thread { private class Loader extends Thread {
@ -355,20 +359,22 @@ public final class LoaderDispatcher {
private String url; private String url;
private File cache; private File cache;
private long maxFileSize; private long maxFileSize;
private CrawlProfile.CacheStrategy cacheStrategy;
public Loader(String url, File cache, long maxFileSize) { public Loader(String url, File cache, long maxFileSize, CrawlProfile.CacheStrategy cacheStrategy) {
this.url = url; this.url = url;
this.cache = cache; this.cache = cache;
this.maxFileSize = maxFileSize; this.maxFileSize = maxFileSize;
this.cacheStrategy = cacheStrategy;
} }
public void run() { public void run() {
if (this.cache.exists()) return; if (this.cache != null && this.cache.exists()) return;
try { try {
// load from the net // load from the net
Response response = load(request(new DigestURI(this.url), false, true), CrawlProfile.CacheStrategy.NOCACHE, this.maxFileSize); Response response = load(request(new DigestURI(this.url), false, true), this.cacheStrategy, this.maxFileSize);
byte[] b = response.getContent(); byte[] b = response.getContent();
FileUtils.copy(b, this.cache); if (this.cache != null) FileUtils.copy(b, this.cache);
} catch (MalformedURLException e) {} catch (IOException e) {} } catch (MalformedURLException e) {} catch (IOException e) {}
} }
} }

Loading…
Cancel
Save