If your block in Drupal 8 needs to update its contents every time there is a page load then you need to disable the cache for the specific block.
You can replace themeName with your custom module name and the $vars['plugin_id'] with just $vars['id'] or $vars['derivative_plugin_id'] whatever makes more sense for your logic.
/**
* Implements hook_preprocess_HOOK() for block.html.twig.
*/
function themeName_preprocess_block(&$vars) {
if($vars['plugin_id'] == 'your-block-id') {
//-- This stops the block being cache in drupal 8
$vars['#cache']['max-age'] = 0;
}
}
If this is a custom block you can use this snippet.
class MyCustomModuleBlock extends BlockBase {
/**
* {@inheritdoc}
*/
public function build() {
}
/**
* @return int
*/
public function getCacheMaxAge() {
return 0;
}
}