I do not see anything wrong with what you just provided. Same as what I have 
been using.

In the previous email, it looks like you may have added it to the "new 
App().start();" as well?


-----Original Message-----
From: Maria Jose Esteve <mjest...@iest.com> 
Sent: Wednesday, October 20, 2021 11:19 AM
To: dev@royale.apache.org
Subject: RE: [EXTERNAL] Re: RE: Strangled with a new Royale wrapper component

Hi,
Yes, I understand the parameters... Well, I must be doing something wrong...
If I assign "manually" the defer ... It doesn't work for me:
...
  <script type="text/javascript" src="./library/closure/goog/base.js"></script>
  <script type="text/javascript" defer>
// generated by Royale
goog.addDependency('../../../App.js', ['App'], 
['org.apache.royale.community.beads.models
...

See anything wrong?

Thx
Hiedra

-----Mensaje original-----
De: Brian Raymes <brian.ray...@teotech.com> Enviado el: miércoles, 20 de 
octubre de 2021 19:01
Para: dev@royale.apache.org
Asunto: RE: [EXTERNAL] Re: RE: Strangled with a new Royale wrapper component

I have only added a single defer, specifically this one (as well as in the 
release version):

  <script type="text/javascript" defer>
// generated by Royale

That should force all other (external, and other) scripts to load first, 
leaving the Royale app as the final load.

When you think about the order of operations, we want external and other 
scripts to load before the Royale script is parsed (before we even ask it to 
start).

Hope that helps.

-----Original Message-----
From: Maria Jose Esteve <mjest...@iest.com>
Sent: Tuesday, October 19, 2021 4:10 PM
To: dev@royale.apache.org
Subject: RE: [EXTERNAL] Re: RE: Strangled with a new Royale wrapper component

I had not read... "only for external scripts"…. how do you specify @Brian?

Thx
Hiedra

De: Maria Jose Esteve <mjest...@iest.com> Enviado el: miércoles, 20 de octubre 
de 2021 0:52
Para: dev@royale.apache.org
Asunto: RE: [EXTERNAL] Re: RE: Strangled with a new Royale wrapper component


Hello,

I wish I could get to an "end" point with this problem, although it seems it 
won't be today 😝

I've read Harb's article (with some tests, none of them definitive) and I've 
added, manually, the "defer" attribute to the script where the dependencies are 
added and, to test, also to the body script where the App.Start() is launched 
but nothing seems to work for me. (It only works in Firefox, but before 
including "defer" it also worked 98% of the time)

I keep getting errors when running from localhost:


  <script type="text/javascript" src="./library/closure/goog/base.js"></script>
  <script type="text/javascript" defer>
// generated by Royale
goog.addDependency('../../../App.js', ['App'], 
['org.apache.royale.community.beads.models


<body>
  <script type="text/javascript" defer>
    new App().start();
  </script>




[cid:image001.png@01D7C549.CA63EDB0]



@Brian, could you specify how you have implemented it in the pom?



Thx.



Hiedra.



-----Mensaje original-----
De: Brian Raymes <brian.ray...@teotech.com<mailto:brian.ray...@teotech.com>>
Enviado el: martes, 19 de octubre de 2021 23:42
Para: dev@royale.apache.org<mailto:dev@royale.apache.org>
Asunto: RE: [EXTERNAL] Re: RE: Strangled with a new Royale wrapper component



What I have done to solve this issue is simply added the "defer" attribute to 
the script block for App.js (using maven-replacer-plugin with maven at package 
time).



https://www.w3schools.com/tags/att_script_defer.asp



"The script is downloaded in parallel to parsing the page, and executed after 
the page has finished parsing"





Brian



-----Original Message-----

From: Yishay Weiss <yish...@apache.org<mailto:yish...@apache.org>>

Sent: Tuesday, October 19, 2021 3:43 AM

To: dev@royale.apache.org<mailto:dev@royale.apache.org>

Subject: [EXTERNAL] Re: RE: Strangled with a new Royale wrapper component



> Maybe there is a way to make App.start() wait until all the js are loaded?



FWIW, this has already been discussed [1] extensively. I think the conclusion 
was that in most cases loading order will not be so so important, unless a JS 
lib is called right at the start. The easiest workaround for now I think is to 
time the methods calls carefully, e.g. after a user click.



[1] 
https://lists.apache.org/thread.html/r2f2d8f68936f9bbf061a80a8ff996bc0398e74c6349ad6e28402d4d0%40%3Cdev.royale.apache.org%3E



On 2021/10/19 10:18:03, Maria Jose Esteve 
<mjest...@iest.com<mailto:mjest...@iest.com>> wrote:

> Exactly, that's what happens to me when I launch against localhost, the js 
> hasn't loaded yet but I don't know how to fix it. I tried monitoring the 
> network and I see it loads but App loads before.... In theory the scripts 
> inside the "body" shouldn't they run after all the js have loaded?

> I've tried to force it, with a custom loader in js but nothing worked,

> probably because I'm not doing it correctly :( Maybe there is a way to make 
> App.start() wait until all the js are loaded?

>

> Hiedra

>

> -----Mensaje original-----

> De: Yishay Weiss
> <yishayj...@hotmail.com<mailto:yishayj...@hotmail.com>> Enviado el: 
> martes, 19 de

> octubre de 2021 12:05

> Para: dev@royale.apache.org<mailto:dev@royale.apache.org>

> Asunto: RE: Strangled with a new Royale wrapper component

>

> *method later

>

> From: Yishay Weiss<mailto:yishayj...@hotmail.com>

> Sent: Tuesday, October 19, 2021 1:04 PM

> To: 
> dev@royale.apache.org<mailto:dev@royale.apache.org<mailto:dev@royale.a
> pache.org%3cmailto:dev@royale.apache.org>>

> Subject: RE: Strangled with a new Royale wrapper component

>

> Are you sure "resources/office/office.js" is being loaded in time? IIRC you 
> can look in the html elements panel and look for the <script> element. Also, 
> keep in mind that loading a script is an async operation so maybe calling the 
> method layer will help?

>

> Just some quick thoughts.

>

>

>

> From: Hugo Ferreira<mailto:hferreira...@gmail.com>

> Sent: Tuesday, October 19, 2021 3:48 AM

> To: Apache Royale Development<mailto:dev@royale.apache.org>

> Subject: Strangled with a new Royale wrapper component

>

> Hi,

>

> I'm strangled with an issue.

> I'm developing a wrapper for office.js (office web add-In).

>

> I have this file OfficeAddIn.as in src root folder with the following content:

>

> package

> {

> import org.apache.royale.events.EventDispatcher;

>

> /**

> * @externs

> */

> COMPILE::JS

> public class OfficeAddIn extends EventDispatcher {

> /**

> * <inject_script>

> * var script = document.createElement("script");

> * script.setAttribute("src", "resources/office/office.js");

> * document.head.appendChild(script);

> * </inject_script>

> */

> public function OfficeAddIn(){}

>

> public static function writeData():void {} } }

>

> At runtime when I run the writeData method from actionscript code, I

> get the following error: ReferenceError: Can't find variable:

> OfficeAddIn

>

> It's not my first Royale wrapper and I copied from the first one.

>

> Thanks in advance,

> Hugo.

>

>

>

Reply via email to