SilverStripe对每个AJAX调用使用requirements()

I'm using a JS script for UI purposes in the CMS area by using a decorator for LeftAndMain.

class LeftAndMainTweaks extends LeftAndMainExtension {
  public function init() {

    parent::init();

    // My JS script
    Requirements::javascript('mymodule/js/myscript.js');
  }
}

The script is loaded only once and not again for each AJAX call (like browsing through pages or ModelAdmin's) which breaks some of the JS functionalities.

How do you force the an external JS script to be reloaded after each AJAX call?

You should not have to force reloading of scripts. Use entwine hooks instead.

A common pattern is to use onmatch and onunmatch, eg.

$('.my-selector').entwine({
    onmatch: function () {
        // don't forget to call this._super();
        this._super();

        // Do your stuff to initialize your component
    },

    onunmatch: function () {
        this._super();
        // clean up your component, unbind event listeners etc.
    }
});

If a view creates a node with the .my-selector class, the onmatch will be called and you can initialize your component there.

Since you didn't specify what exactly you're trying to achieve, it's hard to give better guidance. I think this is also a pretty good read, if you're new to entwine: https://www.bigfork.co.uk/takeaway/a-beginners-introduction-to-using-entwine-in-silverstripe