Do you see the file media/fef/js/Loader.min.js being loaded? If not, you need to download and install Akeeba FEF from our download page. Please note that this is eff-ee-eff, NOT eff-oh-eff. They are different frameworks; FEF is client–side JavaScript and CSS, FOF is server–side PHP.
If however you do see the Loader.min.js file being loaded, does it appear in the <head> section of the page?
If it does not appear in the <head> section OR it has an async or defer attribute: you have a third party plugin which “optimises” JavaScript in a way that breaks your site. Worse than that, it also runs in the backend of your site where nothing like that should ever run! Remove it immediately. Also note that Joomla 3.2 and later allow developers to determine for themselves whether a script they are loading should be loaded blocking, asynchronously or deferred. Having a third party plugin assume that all scripts need to be loaded async, or deferred (either with a defer attribute or by moving the script tags to the bottom of the page) will most definitely break your site because the loading semantics are different than the ones the developer explicitly requested.
Let me give you an idea as to what is going on. Our Joomla 3 software only ever loads a tiny (919 bytes) script, Loader.min.js, in a blocking manner. This is a minimalistic dependency manager. All of our other script is loaded deferred, i.e. after the DOM is loaded and the browser has started rendering the page. All other scripts use akeeba.Loader defined in Loader.min.js telling it to run their initialisation when their dependencies have already loaded. The akeeba.Loader script checks ten times a second and does that. When all dependencies are loaded it removes its timer to prevent wasting system resources. It's a really cool piece of engineering and has the only requirement that it's loaded before any of our other JavaScript files.
There are some third party plugins which promise to “optimise” your site by doing something idiotic, like adding a deferred or async attribute to all scripts, or moving the script tags at the bottom of the <body> tag. Making a script async means that you don't know when it will load. It could be while the browser is parsing the head section, it might be while it's parsing the document body or it might be during or after initial page rendering after the DOM content is loaded. A deferred script or a script at the bottom of the page will be loaded after the browser has finished or just about when it finishes parsing the DOM. Any inline scripts or action attributes depending on those scripts will fail with an error. Since there's a JavaScript error, all execution of JavaScript is suspended. Therefore your backend is broken. That's why these plugins are DANGEROUS and should never, ever be used. Same applies for plugins which aggregate and minify scripts. Don't use them, folks, they break your sites.
Nicholas K. Dionysopoulos
Lead Developer and Director
🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!