# Publish a mirror (copy) of a spreadsheet page with real-time changes

**URL:** <https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286>\
**Category:** Ask for Help\
**Created:** [November 22, 2019, 1:45pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286 "2019-11-22T13:45:31Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mattos\_Xperience\_s](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mattos_xperience_s/32/1753_2.png) [@Mattos\_Xperience\_s](https://community.glideapps.com/u/Mattos_Xperience_s)\
**Post date:** [November 22, 2019, 1:45pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/1 "2019-11-22T13:45:31Z")

</div>

I have a spreadsheet page that I would like to publish to my app (as a image format). Is there any way to put it and it will update as the same way graphics update automatically? I tried to publish my spreadsheet page in PDF format online, copy the link and share in glide spreadsheet, but in the app it does not update as modified. I waited for over 1 hour and really nothing has changed.

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [November 22, 2019, 2:06pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/2 "2019-11-22T14:06:01Z")

</div>

Images are heavily cached by Glide. You can either modify the url to force it to update, or you can use links that will build pdfs on the fly. Here’s a couple of threads that explain both methods

> [@How can I cause my images to update whenever they change?](https://community.glideapps.com/t/how-can-i-cause-my-images-to-update-whenever-they-change/364):
>
> In the glide together meeting today, someone asked about using Dropbox and how glide was caching pics. You asked how this might be used. Here is what I want to do: I want to update the pic as “App updated on” - and have the date when I updated the app as the picture. So, when I change the pic. Then it will be updated on the app. (Just my thought) Potentially I have a friend that has a “student of the week” picture that would change periodically. So she would would need the same link, but the …

[Filter Tabs/Menu by signed-in user - #9 by Travis\_Young](https://community.glideapps.com/t/filter-tabs-menu-by-signed-in-user/992/9)

---

<div class="post-metadata">

**Author:** ![Mattos\_Xperience\_s](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mattos_xperience_s/32/1753_2.png) [@Mattos\_Xperience\_s](https://community.glideapps.com/u/Mattos_Xperience_s)\
**Post date:** [November 22, 2019, 2:13pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/3 "2019-11-22T14:13:21Z")

</div>

In this case, if i put the formula `NOW()` in `F2`, whenever it changes, the image will also be updated in cache? Did you know telling me?

> [@How can I cause my images to update whenever they change?](https://community.glideapps.com/t/how-can-i-cause-my-images-to-update-whenever-they-change/364/2):
>
> Images are cached aggressively. You can work around this by causing your URL to update when data changes: [image] Here I’ve made a URL that changes every time the value in F2 changes. I’ve added a fake URL parameter, cachebust (the name does not matter), at the end of the URL. This is totally ignored, but it makes the URL look brand new when the data changes.

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [November 23, 2019, 3:43pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/4 "2019-11-23T15:43:43Z")

</div>

It should work as long as something changed in your sheet that would cause now() to update.

---

<div class="post-metadata">

**Author:** ![david](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/david/32/62831_2.png) [@david](https://community.glideapps.com/u/david)\
**Post date:** [November 23, 2019, 4:35pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/5 "2019-11-23T16:35:57Z")

</div>

Don’t use NOW for this. Find some value that changes if and only if your chart changes, and use that in the URL.

---

<div class="post-metadata">

**Author:** ![Karim](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/karim/32/13974_2.png) [@Karim](https://community.glideapps.com/u/Karim)\
**Post date:** [November 23, 2019, 5:18pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/6 "2019-11-23T17:18:47Z")

</div>

Hi @Jeff_Hager and @david,

The solution laid down by David (which I am really excited about) doesn’t seem to be working for me.

I have an travel expense tracking app with a chart (published in my sheet) in the home tab

 ![Screenshot_20191124-001433](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/1/1534884dacf9e4efcb896b93fe3b9a4ec97f7647.jpeg)

When changing the URL in the source cell for the chart from:

[https://docs.google.com/spreadsheets/d/e/2PACX-1vQCdFtmJxbYtluhATysBD1OCRyDp-M1aGdb0H3Ch1WyAqQZvuVunkWdRDcEPtlgHf\_VTY2ui1R1E31-/pubchart?oid=660519160&format=image](https://docs.google.com/spreadsheets/d/e/2PACX-1vQCdFtmJxbYtluhATysBD1OCRyDp-M1aGdb0H3Ch1WyAqQZvuVunkWdRDcEPtlgHf_VTY2ui1R1E31-/pubchart?oid=660519160&format=image)

To (where B2 is the total spent so far that increases everytime I submit an expense):

=“[https://docs.google.com/spreadsheets/d/e/2PACX-1vQCdFtmJxbYtluhATysBD1OCRyDp-M1aGdb0H3Ch1WyAqQZvuVunkWdRDcEPtlgHf\_VTY2ui1R1E31-/pubchart?oid=660519160&format=image](https://docs.google.com/spreadsheets/d/e/2PACX-1vQCdFtmJxbYtluhATysBD1OCRyDp-M1aGdb0H3Ch1WyAqQZvuVunkWdRDcEPtlgHf_VTY2ui1R1E31-/pubchart?oid=660519160&format=image)” & “cachebust” & B2

I get the “image URL can’t load” in the space where the chart should be.

Any help would be extremely appreciated!

---

<div class="post-metadata">

**Author:** ![George\_B](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/george_b/32/534_2.png) [@George\_B](https://community.glideapps.com/u/George_B)\
**Post date:** [November 23, 2019, 5:23pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/7 "2019-11-23T17:23:46Z")

</div>

Shouldn’t it be

```auto
="https://........=image" & "&cachebust=" & B2

```

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [November 23, 2019, 5:32pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/8 "2019-11-23T17:32:20Z")

</div>

yep, missing the ‘&’ before cachebust and the ‘=’ after it.

---

<div class="post-metadata">

**Author:** ![Karim](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/karim/32/13974_2.png) [@Karim](https://community.glideapps.com/u/Karim)\
**Post date:** [November 23, 2019, 5:44pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/9 "2019-11-23T17:44:59Z")

</div>

Like too often, the problem is between the screen and the chair 🤦🏽‍♂️.

Thanks so much for your help, it’s much appreciated!

---

<div class="post-metadata">

**Author:** ![Luis\_Siles](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/luis_siles/32/9384_2.png) [@Luis\_Siles](https://community.glideapps.com/u/Luis_Siles)\
**Post date:** [September 14, 2021, 11:34pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/10 "2021-09-14T23:34:09Z")

</div>

but in my case I am using glide tables does it work the same?

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [September 15, 2021, 1:18am UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/11 "2021-09-15T01:18:48Z")

</div>

You can build the image link, with a template column for example, and use todays date as the cachebust query parameter. I would probably create another math column first that pulls in the current date and formats it without the current time. Then add that math value as the cachebust in the template column. That way it’s not trying to update the image every second and instead updates it every day.

---

<div class="post-metadata">

**Author:** ![Luis\_Siles](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/luis_siles/32/9384_2.png) [@Luis\_Siles](https://community.glideapps.com/u/Luis_Siles)\
**Post date:** [September 15, 2021, 3:18am UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/12 "2021-09-15T03:18:04Z")

</div>

Could you write me an example with glide tables please

---

<div class="post-metadata">

**Author:** ![Luis\_Siles](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/luis_siles/32/9384_2.png) [@Luis\_Siles](https://community.glideapps.com/u/Luis_Siles)\
**Post date:** [September 16, 2021, 7:40pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/13 "2021-09-16T19:40:08Z")

</div>

> [@George\_B](#):
>
> `"&cachebust=" & B2`

I have tried but I think it changes or I do wrong “[https://googledrive.com/sadsad/](https://googledrive.com/sadsad/) cachebust = 16/092021”  
in my case I use glide table it was storing the images but I think it doesn’t work every time I enter from a cell phone it reloads or maybe refresh if it is in the cache I should just open the photos right

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [September 16, 2021, 8:09pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/14 "2021-09-16T20:09:09Z")

</div>

What exactly is the problem you are having and what are you trying to accomplish? The purpose of adding a cachebust parameter to the image url is to ensure that the url changes, so glide is forced to download and re-cache the updated image. This is only really useful if you have an image that changes often, such as a graph that’s constantly updated, but the url for that image doesn’t change.

---

<div class="post-metadata">

**Author:** ![Luis\_Siles](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/luis_siles/32/9384_2.png) [@Luis\_Siles](https://community.glideapps.com/u/Luis_Siles)\
**Post date:** [September 16, 2021, 8:12pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/15 "2021-09-16T20:12:32Z")

</div>

Ok now I understand better, in my case the image almost never changes only if the client requires it, but it is very little, but when I open the cell phone and close it and return open again they load all the photos, I thought they were in the cache and need to reload

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [September 16, 2021, 11:11pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/16 "2021-09-16T23:11:01Z")

</div>

A glide app is still just a website designed to look and work like an app, but like any website, it will still have to load everything initially. I have the same experience as you. Every time I close the app and open it again, it takes a second or two for the images to show up. The browser is probably caching some of that, so it’s possible that it’s loading a little bit quicker that it normally would if you opened the app for the very first time. In my case, a lot of my image components and lists are also pointing to an IF column which determines if I need to show an uploaded image or a default image, if one hasn’t been uploaded by the user. Since the IF column is a computed column, then it also may be taking a second or two for the IF column to compute and determine which image to show. I really don’t fully understand how everything works behind the scenes, maybe it is caching the images to some point, or maybe the cache expires quickly. It’s hard to say, but in my experience, everything loads as fast as I would expect it to load.

Here’s some more info on browser cache and how it works.

> **[Understanding Browser Caching](https://www.section.io/engineering-education/understanding-browser-caching/)**
>
> In this article, we will explore the basics of browser caching in web browsing and understand how it works. We will go through the main headers used in caching and highlight some of the limitations of this phenomenon.

---

<div class="post-metadata">

**Author:** ![Luis\_Siles](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/luis_siles/32/9384_2.png) [@Luis\_Siles](https://community.glideapps.com/u/Luis_Siles)\
**Post date:** [September 16, 2021, 11:14pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/17 "2021-09-16T23:14:30Z")

</div>

> [@Jeff\_Hager](#):
>
> A glide app is still just a website designed to look and work like an app, but like any website, it will still have to load everything initially. I have the same experience as you. Every time I close the app and open it again, it takes a second or two for the images to show up. The browser is probably caching some of that, so it’s possible that it’s loading a little bit quicker that it normally would if you opened the app for the very first time. In my case, a lot of my image components and lists are also pointing to an IF column which determines if I need to show an uploaded image or a default image, if one hasn’t been uploaded by the user. Since the IF column is a computed column, then it also may be taking a second or two for the IF column to compute and determine which image to show. I really don’t fully understand how everything works behind the scenes, maybe it is caching the images to some point, or maybe the cache expires quickly. It’s hard to say, but in my experience, everything loads as fast as I would expect it to load.
> 
> Here’s some more info on browser cache and how it works.

ok, I see thanks for share

---

<div class="post-metadata">

**Author:** ![NoCodeAndy](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nocodeandy/32/62530_2.png) [@NoCodeAndy](https://community.glideapps.com/u/NoCodeAndy)\
**Post date:** [January 17, 2024, 4:50pm UTC](https://community.glideapps.com/t/publish-a-mirror-copy-of-a-spreadsheet-page-with-real-time-changes/2286/18 "2024-01-17T16:50:36Z")

</div>


