diff options
-rw-r--r-- | mod/photo.php | 5 | ||||
-rw-r--r-- | mod/profile.php | 2 | ||||
-rw-r--r-- | mod/update_network.php | 10 | ||||
-rw-r--r-- | mod/update_profile.php | 16 | ||||
-rw-r--r-- | view/head.tpl | 3 |
5 files changed, 31 insertions, 5 deletions
diff --git a/mod/photo.php b/mod/photo.php index 6174b10ab..653ca81c2 100644 --- a/mod/photo.php +++ b/mod/photo.php @@ -112,9 +112,8 @@ function photo_init(&$a) { } header("Content-type: image/jpeg"); - header('Expires: ' . datetime_convert('UTC','UTC', 'now + 30 minutes', 'D, d M Y H:i:s' . ' GMT')); - header('Expires: ' . datetime_convert('UTC','UTC', 'now + 30 minutes', 'D, d M Y H:i:s' . ' GMT')); - header("Cache-Control: max-age=3600, must-revalidate"); + header('Expires: ' . datetime_convert('UTC','UTC', 'now + 3 months', 'D, d M Y H:i:s' . ' GMT')); +// header("Cache-Control: max-age=36000, only-if-cached"); echo $data; killme(); return; //NOTREACHED diff --git a/mod/profile.php b/mod/profile.php index 6e04724be..0cc236f95 100644 --- a/mod/profile.php +++ b/mod/profile.php @@ -63,6 +63,8 @@ function profile_init(&$a) { $profile = $a->argv[1]; } profile_load($a,$which,$profile); + $a->page['htmlhead'] .= '<link rel="alternate" type="application/atom+xml" href="' . $a->get_baseurl() . '/dfrn_poll/' . $which .'" />'; + $a->page['htmlhead'] .= "<meta name=\"dfrn-template\" content=\"" . $a->get_baseurl() . "/profile/%s" . "\" />\r\n"; $dfrn_pages = array('request', 'confirm', 'notify', 'poll'); diff --git a/mod/update_network.php b/mod/update_network.php index 18c630fdf..1c790ead1 100644 --- a/mod/update_network.php +++ b/mod/update_network.php @@ -1,5 +1,6 @@ <?php +// See update_profile.php for documentation require_once('mod/network.php'); @@ -9,7 +10,14 @@ function update_network_content(&$a) { header("Content-type: text/html"); echo "<!DOCTYPE html><html><body>\r\n"; echo (($_GET['msie'] == 1) ? '<div>' : '<section>'); - echo str_replace("\t",' ',network_content($a,true)); + + + $text = network_content($a,true); + $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; + $replace = "<img\${1} dst=\"\${2}\""; + $text = preg_replace($pattern, $replace, $text); + + echo str_replace("\t",' ',$text); echo (($_GET['msie'] == 1) ? '</div>' : '</section>'); echo "</body></html>\r\n"; killme(); diff --git a/mod/update_profile.php b/mod/update_profile.php index 8ea86eb91..96d8376dc 100644 --- a/mod/update_profile.php +++ b/mod/update_profile.php @@ -1,5 +1,7 @@ <?php +// This page is fetched via ajax to update the profile page with +// new content while you are viewing it. require_once('mod/profile.php'); @@ -8,7 +10,19 @@ function update_profile_content(&$a) { header("Content-type: text/html"); echo "<!DOCTYPE html><html><body>\r\n"; echo (($_GET['msie'] == 1) ? '<div>' : '<section>'); - echo str_replace("\t",' ',profile_content($a,true)); + + // Grab the page inner contents, but move any image src attributes to another attribute name. + // Some browsers will prefetch all the images for the page even if we don't need them. + // The only ones we need to fetch are those for new page additions, which we'll discover + // on the client side and then swap the image back. + + + $text = profile_content($a,true); + $pattern = "/<img([^>]*) src=\"([^\"]*)\"/"; + $replace = "<img\${1} dst=\"\${2}\""; + $text = preg_replace($pattern, $replace, $text); + + echo str_replace("\t",' ',$text); echo (($_GET['msie'] == 1) ? '</div>' : '</section>'); echo "</body></html>\r\n"; killme(); diff --git a/view/head.tpl b/view/head.tpl index a2b55e0b5..ec67455d0 100644 --- a/view/head.tpl +++ b/view/head.tpl @@ -61,6 +61,9 @@ $('.wall-item-outside-wrapper',data).each(function() { var ident = $(this).attr('id'); if($('#' + ident).length == 0) { + $('img',this).each(function() { + $(this).attr('src',$(this).attr('dst')); + }); $('#' + prev).after($(this)); } else { |