Hi Cezary,

I appreciate this hint and was not aware about this time limit.
I give it a try, thanks!

Greetings, Erich



Am 26.03.2018 23:45, schrieb Cezary Biernacki:
requirejs/AMD is much improvement of other "plain" Javascript approach once
you get sizeable amount of Javascript code, both developers (dependencies
between modules are explicit, and private parts can stay private instead of
polluting global space name), and for users (HTML can be rendered before
all Javascript is loaded and parsed). So I recommend understanding it - it
is not really much complicated. However one pain point for me is that if
some module fails to load for any reason, usually whole page becomes
unusable, especially in Tapestry which add modal "loader" layer.
Unfortunately a module can fail to load because of time out, and default
RequireJS is too small, like 7 seconds only. Tapestry in development mode
changes this value to 5 minutes, but uses default in the production mode,
so it might be hard to detect for developers. I fix this by increasing
"waitSeconds" parameter for RequireJS in my Layout component, e.g.:

     @SetupRender
     public void configureWaitSeconds() {
         // See http://requirejs.org/docs/api.html#config-waitSeconds
         javaScriptSupport.addModuleConfigurationCallback((config) ->
config.put("waitSeconds", 120));
     }


On Mon, Mar 26, 2018 at 11:06 PM, Erich Gormann<e.gorm...@gormann.de>
wrote:

Hi Cezary,

first thanks. Yes, it was a mixture of all that, meanwhile I studied the
requirejs documentation strongly and checked out the tapestry5-jquery
project, to learn from it.

And now a lot of things are already working!

A lot in requirejs and AMD semms to be magical and I prefer to do java
coding, but we'll never stop to learn...

Regards, Erich




Am 26.03.2018 17:21, schrieb Cezary Biernacki:

Hi Erich,

One problem I can see is that function showLoadingIndicator() is not
exported from define(.., function() { ... }). You should add "return {
showLoadingIndicator: showLoadingIndicator };" at the end of "function() {
... }".

However I believe it will not solve a problem indicated by message
"Couldn’t resolve classpath asset from path
META-INF\modules\hotel\loadingIndicatorTrigger.js" (I guess you are on
Windows, so slashes are translated to slashes, but it should not be an
issue). It suggests that the JS file is missing. So either it was not
copied from the source directories to the directories (or JARs) used
during
execution - check your build directories to see if the file is really
there, if not, than run your build process. Or file name
"hotel/loadingIndicatorTrigger"
is misspelled in somewhere.

Cezary





On Sun, Mar 25, 2018 at 3:19 PM, Erich Gormann<e.gorm...@gormann.de>
wrote:

Dear all,
   From a java class I load a js module and try to invoke a method in it
using the following line:

javaScriptSupport.require("hotel/loadingIndicatorTrigger").
invoke("showLoadingIndicator");

The script file loadingIndicatorTrigger.js is in
src/main/resources/META-INF/modules/hotel/loadingIndicatorTrigger.js

This is the content of the script:
requirejs.config({
"shim": {
"hotel/globals/jquery.loading.indicator": {
deps: ["jquery"]
}
}
});

define(["hotel/globals/jquery.loading.indicator"], function() {

function showLoadingIndicator() {
var homeLoader = jQuery('body').loadingIndicator({
useImage: false,
}).data("loadingIndicator");
homeLoader.show();
}

});

Now the browser console prompts always the following error: "RequireJS
error: require: moduleLib is undefined".

In my Eclipse I see a warning in above line of java code: "Couldn’t
resolve classpath asset from path META-INF\modules\hotel\loading
IndicatorTrigger.js"

I tried different things like
define(["jquery", "hotel/globals/jquery.loading.indicator"],
function($) {
buterror is always the same.

Is there something missing in my configuration or in the applications
module class?

Thanks for your help!


Regards, Erich





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to