Inquisit Web: slow loading time (+- 8 minutes)


Author
Message
Comp.Train
Comp.Train
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 3, Visits: 14
Hello All!

For my experiment I have programmed 20 different sessions + 4 questionnaires. Since I am using Inquisit web, and I can only use 1 experiment slot, I have put all these sessions into 1 script. With a <select> block, in which participants are asked to provide an entrance number for one specific session, I can still control which sessions participants get. However, as you might have guessed, Inquisit has some troubles with this enormous script and is taking its sweet time to load everytime (longest: 8 minutes). This is incredibly bothersome for the participants who enter most of these sessions from their own home.

In each session, several pictures and several audiofiles are being downloaded from an external webserver. When taking all these sessions together, this results in 1.53 gb. in audiofiles and in about 500 mb. in pictures. I am guessing the loading time is due to this, so my question is: is there any way to solve this? Perhaps by first making Inquisit ask the participant for their entrance code without loading everything before it pops this question, and then only loading the requested session?

Hope to hear from you soon!


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
Comp.Train - Tuesday, June 27, 2017
Hello All!

For my experiment I have programmed 20 different sessions + 4 questionnaires. Since I am using Inquisit web, and I can only use 1 experiment slot, I have put all these sessions into 1 script. With a <select> block, in which participants are asked to provide an entrance number for one specific session, I can still control which sessions participants get. However, as you might have guessed, Inquisit has some troubles with this enormous script and is taking its sweet time to load everytime (longest: 8 minutes). This is incredibly bothersome for the participants who enter most of these sessions from their own home.

In each session, several pictures and several audiofiles are being downloaded from an external webserver. When taking all these sessions together, this results in 1.53 gb. in audiofiles and in about 500 mb. in pictures. I am guessing the loading time is due to this, so my question is: is there any way to solve this? Perhaps by first making Inquisit ask the participant for their entrance code without loading everything before it pops this question, and then only loading the requested session?

Hope to hear from you soon!


> Perhaps by first making Inquisit ask the participant for their entrance code without loading everything before it pops this question,
> and then only loading the requested session?

You should use the groupnumber / groupid to determine which session gets executed and pass the groupnumber to the launch page via an URL query parameter. Here, the groupnumber serves as the "entry code" -- i.e. controls which session to run -- and you should include the number directly in the link you hand out to the respective participant. See e.g. (2) here https://www.millisecond.com/forums/FindPost20927.aspx

You can then use conditional <include> elements to only load the elements and files pertaining to that specific session. See e.g. https://www.millisecond.com/forums/FindPost15640.aspx or https://www.millisecond.com/forums/Topic19661.aspx for examples.


Comp.Train
Comp.Train
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 3, Visits: 14
Hello Dave,

Thank you so much for your answer! I’m just trying to make sense of it, could you correct me if I’m wrong?

In Inquisit web you can choose how it extracts your subject and group ID’s. When I select “URL parameter” it gives the defaults subjectid and groupid, which I can then incorporate in the link I send my participant. So when I take my standard link of research.millisecond.com/something.web and add ?subjectid=1&groupid=1 which makes the complete link: research.millisecond.com/something.web?subjectid=1&groupid=1, Inquisit knows that the subject number is 1 and the groupnumber is also 1. I can customize these numbers as I see fit, and when I include the following bit (specified below) it knows that when I use a certain groupid, it only loads the corresponding file.

To help Inquisit know which groupnumber corresponds with which experiment, I should use the include element (or also the batch?). When I set up a new script, I write one include element for each session/questionnaire. An example:

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_1.iqx"
</include>

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_2.iqx"
</include>

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_3.iqx"
</include>

Questions:
-Should I include names for the include elements, e.g. <include 1>, <include 2> to help prevent Inquisit thinking I defined something more than once (something I bumped into earlier with things like <defaults> and <instruct>).
-Should I use this exact wording script.groupid? Or is script refencing to something else?

Online, when choosing my script, I should only upload this main file containing all the necessary <include> elements. On the next page, where it asks to upload my files, I should upload all the individual sessions and questionnaires which are referenced in the main file.

When I now send the participant with subject ID 23 and group ID 2435 the following link:
research.millisecond.com/something.web?subjectid=23&groupid=2435 it will be much faster to load the corresponding experiment because it will only need to load the file corresponding to the groupid.

Something like this?


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
Comp.Train - Tuesday, June 27, 2017
Hello Dave,

Thank you so much for your answer! I’m just trying to make sense of it, could you correct me if I’m wrong?

In Inquisit web you can choose how it extracts your subject and group ID’s. When I select “URL parameter” it gives the defaults subjectid and groupid, which I can then incorporate in the link I send my participant. So when I take my standard link of research.millisecond.com/something.web and add ?subjectid=1&groupid=1 which makes the complete link: research.millisecond.com/something.web?subjectid=1&groupid=1, Inquisit knows that the subject number is 1 and the groupnumber is also 1. I can customize these numbers as I see fit, and when I include the following bit (specified below) it knows that when I use a certain groupid, it only loads the corresponding file.

To help Inquisit know which groupnumber corresponds with which experiment, I should use the include element (or also the batch?). When I set up a new script, I write one include element for each session/questionnaire. An example:

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_1.iqx"
</include>

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_2.iqx"
</include>

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_3.iqx"
</include>

Questions:
-Should I include names for the include elements, e.g. <include 1>, <include 2> to help prevent Inquisit thinking I defined something more than once (something I bumped into earlier with things like <defaults> and <instruct>).
-Should I use this exact wording script.groupid? Or is script refencing to something else?

Online, when choosing my script, I should only upload this main file containing all the necessary <include> elements. On the next page, where it asks to upload my files, I should upload all the individual sessions and questionnaires which are referenced in the main file.

When I now send the participant with subject ID 23 and group ID 2435 the following link:
research.millisecond.com/something.web?subjectid=23&groupid=2435 it will be much faster to load the corresponding experiment because it will only need to load the file corresponding to the groupid.

Something like this?


> In Inquisit web you can choose how it extracts your subject and group ID’s. When I select “URL parameter” it gives the defaults subjectid and groupid,
> which I can then incorporate in the link I send my participant. So when I take my standard link of
> research.millisecond.com/something.web and add ?subjectid=1&groupid=1 which makes the complete link:
> research.millisecond.com/something.web?subjectid=1&groupid=1,
> Inquisit knows that the subject number is 1 and the groupnumber is also 1.
> I can customize these numbers as I see fit,

Yes, that is entirely correct.

> and when I include the following bit (specified below) it knows that when I use a certain groupid, it only loads the corresponding file.

Yes, exactly.

> -Should I include names for the include elements, e.g. <include 1>, <include 2> to help prevent Inquisit thinking I defined something
> more than once (something I bumped into earlier with things like <defaults> and <instruct>).

No, naming the <include> elements is not necessary, but you can do so if you think it makes the code more readable and easier to understand. A script may contain several <include> elements, whereas it may only contain a single <defaults> or <instruct> element.

> -Should I use this exact wording script.groupid? Or is script refencing to something else?

Yes, you should use script.groupid -- that is the group id property and will return the value of the group id / group number that was provided to the script.
https://www.millisecond.com/support/docs/v5/html/language/properties/groupid.htm

> When I now send the participant with subject ID 23 and group ID 2435 the following link:
> research.millisecond.com/something.web?subjectid=23&groupid=2435 it will be much faster to load the
> corresponding experiment because it will only need to load the file corresponding to the groupid.

Yes. What <include> does, effectively, is paste the contents of an external file such as "session_2.iqx"

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_2.iqx"
</include>

into the "main" script. As a consequence, only the stimuli referenced in that external file will have to be downloaded, here: those pertaining to "session 2", but not any files pertaining to the other sessions. I.e., the participant should only get the files s/he needs to complete the particular session / condition s/he's been assigned to instead of having to download the entire package (all files pertaining to all sessions, regardless of whether s/he needs them).

Hope this clarifies.

Comp.Train
Comp.Train
Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)Associate Member (296 reputation)
Group: Forum Members
Posts: 3, Visits: 14
Dave - Tuesday, June 27, 2017
Comp.Train - Tuesday, June 27, 2017
Hello Dave,

Thank you so much for your answer! I’m just trying to make sense of it, could you correct me if I’m wrong?

In Inquisit web you can choose how it extracts your subject and group ID’s. When I select “URL parameter” it gives the defaults subjectid and groupid, which I can then incorporate in the link I send my participant. So when I take my standard link of research.millisecond.com/something.web and add ?subjectid=1&groupid=1 which makes the complete link: research.millisecond.com/something.web?subjectid=1&groupid=1, Inquisit knows that the subject number is 1 and the groupnumber is also 1. I can customize these numbers as I see fit, and when I include the following bit (specified below) it knows that when I use a certain groupid, it only loads the corresponding file.

To help Inquisit know which groupnumber corresponds with which experiment, I should use the include element (or also the batch?). When I set up a new script, I write one include element for each session/questionnaire. An example:

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_1.iqx"
</include>

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_2.iqx"
</include>

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_3.iqx"
</include>

Questions:
-Should I include names for the include elements, e.g. <include 1>, <include 2> to help prevent Inquisit thinking I defined something more than once (something I bumped into earlier with things like <defaults> and <instruct>).
-Should I use this exact wording script.groupid? Or is script refencing to something else?

Online, when choosing my script, I should only upload this main file containing all the necessary <include> elements. On the next page, where it asks to upload my files, I should upload all the individual sessions and questionnaires which are referenced in the main file.

When I now send the participant with subject ID 23 and group ID 2435 the following link:
research.millisecond.com/something.web?subjectid=23&groupid=2435 it will be much faster to load the corresponding experiment because it will only need to load the file corresponding to the groupid.

Something like this?


> In Inquisit web you can choose how it extracts your subject and group ID’s. When I select “URL parameter” it gives the defaults subjectid and groupid,
> which I can then incorporate in the link I send my participant. So when I take my standard link of
> research.millisecond.com/something.web and add ?subjectid=1&groupid=1 which makes the complete link:
> research.millisecond.com/something.web?subjectid=1&groupid=1,
> Inquisit knows that the subject number is 1 and the groupnumber is also 1.
> I can customize these numbers as I see fit,

Yes, that is entirely correct.

> and when I include the following bit (specified below) it knows that when I use a certain groupid, it only loads the corresponding file.

Yes, exactly.

> -Should I include names for the include elements, e.g. <include 1>, <include 2> to help prevent Inquisit thinking I defined something
> more than once (something I bumped into earlier with things like <defaults> and <instruct>).

No, naming the <include> elements is not necessary, but you can do so if you think it makes the code more readable and easier to understand. A script may contain several <include> elements, whereas it may only contain a single <defaults> or <instruct> element.

> -Should I use this exact wording script.groupid? Or is script refencing to something else?

Yes, you should use script.groupid -- that is the group id property and will return the value of the group id / group number that was provided to the script.
https://www.millisecond.com/support/docs/v5/html/language/properties/groupid.htm

> When I now send the participant with subject ID 23 and group ID 2435 the following link:
> research.millisecond.com/something.web?subjectid=23&groupid=2435 it will be much faster to load the
> corresponding experiment because it will only need to load the file corresponding to the groupid.

Yes. What <include> does, effectively, is paste the contents of an external file such as "session_2.iqx"

<include>
/ precondition =  [script.groupid == "XXXX"]
/ file = "session_2.iqx"
</include>

into the "main" script. As a consequence, only the stimuli referenced in that external file will have to be downloaded, here: those pertaining to "session 2", but not any files pertaining to the other sessions. I.e., the participant should only get the files s/he needs to complete the particular session / condition s/he's been assigned to instead of having to download the entire package (all files pertaining to all sessions, regardless of whether s/he needs them).

Hope this clarifies.

Definitely, you're a lifesaver! Thank you very much for your time and patience. I will report back in this thread if/when I have this up-and-running (probably somewhere later this week).
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search