【发布时间】:2016-12-04 01:37:19
【问题描述】:
我从另一个网站获取超过 1000 张图片,我想在用户逐步向下滚动时在服务器端请求它们。我的问题是它们一起加载,我不知道如何在滚动期间部分加载它们。 Lazyload 仅解决了我的问题的客户端。
代码:
$url = 'http://mydomain/page/';
$string = '';
for($i=0; $i<10; $i++){
$string .= FetchPage($url.$i);
}
$image_regex_src_url = '/<img[^>]*'.
'src=[\"|\'](.*)[\"|\']/Ui';
preg_match_all($image_regex_src_url, $string, $out, PREG_PATTERN_ORDER);
$images_url_array = $out[1];
foreach ($images_url_array as $image) {
$elements = explode('/', $image);
$name = end($elements);
$checkname = explode('.', $name);
if(end($checkname) === 'jpg' || end($checkname) === 'png'){
$img = 'images/'.$name;
list($width, $height) = getimagesize($image);
if($height < 4000 && $height > 300) {
if(!file_exists($img)){
file_put_contents($img, file_get_contents($image));
}
print_r('<img src="'.$img.'" width="900" />');
}
}
}
@编辑:
我解决了我的问题,将所有数据抓取到我的服务器,然后在客户端使用lazyload.js 将其输出。
【问题讨论】:
-
img.onload=loadNextImage;
-
您无法通过客户端管理服务器端。当用户滚动时,这是一个客户端事件,而不是服务器功能。所以 PHP 在这里什么也没做。您必须使用 javascript。
标签: javascript php html css pagination