{"id":848,"date":"2018-10-05T18:03:03","date_gmt":"2018-10-05T18:03:03","guid":{"rendered":"https:\/\/lab.florianschwarz.net\/PennController\/?post_type=yada_wiki&#038;p=848"},"modified":"2018-11-07T04:15:46","modified_gmt":"2018-11-07T04:15:46","slug":"preloading-resources","status":"publish","type":"yada_wiki","link":"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/preloading-resources\/","title":{"rendered":"Preloading Resources"},"content":{"rendered":"<p><div class='content-column three_fourth'>By default, all the resources <em>start<\/em> to preload when the experiment page opens, and each <code>PennController<\/code> trial checks that the specific resources it uses are preloaded before it starts.<\/p>\n<p>You can change this behavior and have control over <strong>when<\/strong> and <strong>which<\/strong> resources should be checked for preloading by using the command <code><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-checkpreloaded\/\" class=\"wikilink-published\">PennController.CheckPreloaded<\/a><\/code>.<\/p>\n<p>[js]PennController.CheckPreloaded()[\/js] creates an item that checks that <strong>all<\/strong> the resources are preloaded before proceeding. You can also specify that only the resources used by certain items should be checked: <\/p>\n<p>[js]<br \/>\nPennController.CheckPreloaded(<br \/>\n    startsWith(&#8220;practice&#8221;)<br \/>\n    ,<br \/>\n    startsWith(&#8220;test&#8221;)<br \/>\n    ,<br \/>\n    &#8220;exitItem&#8221;<br \/>\n)<br \/>\n[\/js]<\/p>\n<p>This code will create an item that checks preloading for the resources of all the PennController trials whose label starts with <code>practice<\/code> or <code>test<\/code>, or <em>is<\/em> <code>exitItem<\/code>, and only those.<\/p>\n<p>Finally, you can pass a number as the last argument to specify a delay (in milliseconds) after which, even if not all the resources have been preloaded, the next item in the sequence should start anyway:<\/p>\n<p>[js]<br \/>\nPennController.CheckPreloaded(<br \/>\n    startsWith(&#8220;test&#8221;)<br \/>\n    ,<br \/>\n    5000<br \/>\n)[\/js]<\/p>\n<p>To control <strong>when<\/strong> in the flow of your experiment the resources should be checked for preloading, use the <code>label<\/code> command onto the item generated by <code>PennController.CheckPreload<\/code> to assign it a label, and refer to it in <code><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-sequence\/\" class=\"wikilink-published\">PennController.Sequence<\/a><\/code>.<\/p>\n<h2 id=\"completeexample\">Complete Example<\/h2>\n<p>[js try=&#8221;data&#8221;]<br \/>\nPennController.ResetPrefix( null );<\/p>\n<p>PennController.Sequence( &#8220;welcome&#8221; , &#8220;preloadPractice&#8221; , startsWith(&#8220;practice&#8221;) , &#8220;preloadTest&#8221; , startsWith(&#8220;Test&#8221;) );<\/p>\n<p>PennController.AddHost( &#8220;http:\/\/files.lab.florianschwarz.net\/ibexfiles\/PennController\/SampleTrials\/&#8221; );<\/p>\n<p>PennController.CheckPreloaded( startsWith(&#8220;Practice&#8221;) )<br \/>\n    .label( &#8220;preloadPractice&#8221; );<\/p>\n<p>PennController.CheckPreloaded( startsWith(&#8220;Test&#8221;) )<br \/>\n    .label( &#8220;preloadTest&#8221; );<\/p>\n<p>PennController( &#8220;welcome&#8221; ,<br \/>\n    newText( &#8220;message&#8221; , &#8220;Welcome. The resources are currently being preloaded. The next trial won&#8217;t start before all the resources for the &#8216;practice&#8217; trial are loaded (i.e. 1fishSquareTank.png).&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newButton(&#8220;start&#8221;, &#8220;Start&#8221;)<br \/>\n        .print()<br \/>\n        .wait()<br \/>\n);<\/p>\n<p>PennController( &#8220;practice-1&#8221; ,<br \/>\n    newImage(&#8220;tank&#8221;, &#8220;1fishSquareTank.png&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newText(&#8220;description&#8221;, &#8220;The tank is round.&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newKey(&#8220;validate&#8221;, &#8220;FJ&#8221;)<br \/>\n        .wait()<br \/>\n);<\/p>\n<p>PennController( &#8220;practice-2&#8221; ,<br \/>\n    newImage(&#8220;tank&#8221;, &#8220;1fishSquareTank.png&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newText(&#8220;description&#8221;, &#8220;The tank is square.&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newKey(&#8220;validate&#8221;, &#8220;FJ&#8221;)<br \/>\n        .wait()<br \/>\n);<\/p>\n<p>PennController( &#8220;Test-1&#8221; ,<br \/>\n    newImage(&#8220;tank&#8221;, &#8220;2fishRoundTank.png&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newText(&#8220;description&#8221;, &#8220;The tank is round.&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newKey(&#8220;validate&#8221;, &#8220;FJ&#8221;)<br \/>\n        .wait()<br \/>\n);<\/p>\n<p>PennController( &#8220;Test-2&#8221; ,<br \/>\n    newImage(&#8220;tank&#8221;, &#8220;2fishRoundTank.png&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newText(&#8220;description&#8221;, &#8220;The tank is square.&#8221;)<br \/>\n        .print()<br \/>\n    ,<br \/>\n    newKey(&#8220;validate&#8221;, &#8220;FJ&#8221;)<br \/>\n        .wait()<br \/>\n);<br \/>\n[\/js]<\/p><\/div><br \/>\n<div class='content-column one_fourth last_column'><h3>Index<\/h3>\n<ul>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/installation\/\" class=\"wikilink-published\">Installing PennController<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/ontology\/\" class=\"wikilink-published\">Ontology<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/aesthetics\/\" class=\"wikilink-published\">Aesthetics<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/preloading-resources\/\" class=\"wikilink-published\">Preloading resources<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/zipped-resources\/\" class=\"wikilink-published\">ZIPped resources<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/spreadsheet-template\/\" class=\"wikilink-published\">Spreadsheet (CSV)<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/canvas-design-tool\/\" class=\"wikilink-published\">Canvas creation<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/recording-and-collecting-audio-samples\/\" class=\"wikilink-published\">Setup for audio recordings collection<\/a><\/li>\n<hr>\n<li>Commands by <strong>element categories<\/strong>\n<ul>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/standard-element-commands\/\" class=\"wikilink-published\">Standard Element Commands<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/audio-element\/\" class=\"wikilink-published\">Audio element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/button-element\/\" class=\"wikilink-published\">Button element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/298\/\" class=\"wikilink-published\">Canvas element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/function-element\/\" class=\"wikilink-published\">Function element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/html-element\/\" class=\"wikilink-published\">Html element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/image-element\/\" class=\"wikilink-published\">Image element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/key-element\/\" class=\"wikilink-published\">Key element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/scale-element\/\" class=\"wikilink-published\">Scale element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/324\/\" class=\"wikilink-published\">Selector element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/text-element\/\" class=\"wikilink-published\">Text element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/textinput-element\/\" class=\"wikilink-published\">TextInput element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/tooltip-element\/\" class=\"wikilink-published\">Tooltip element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/timer-element\/\" class=\"wikilink-published\">Timer element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/var-element\/\" class=\"wikilink-published\">Var element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/video-element\/\" class=\"wikilink-published\">Video element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/voicerecorder-element\/\" class=\"wikilink-published\">VoiceRecorder element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/youtube-element\/\" class=\"wikilink-published\">Youtube element<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/clear-command\/\" class=\"wikilink-published\">Special clear command<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/end-command\/\" class=\"wikilink-published\">Special end command<\/a><\/li>\n<\/ul>\n<\/li>\n<hr>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/global-commands\/\" class=\"wikilink-published\">Global PennController Commands<\/a>\n<ul>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller\/\" class=\"wikilink-published\">PennController<\/a>\n<ul>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-label\/\" class=\"wikilink-published\">.label<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-log\/\" class=\"wikilink-published\">.log<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-logappend\/\" class=\"wikilink-published\">.logAppend<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-nofooter\/\" class=\"wikilink-published\">.noFooter<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-noheader\/\" class=\"wikilink-published\">.noHeader<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-setoption\/\" class=\"wikilink-published\">.setOption<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-addhost\/\" class=\"wikilink-published\">PennController.AddHost<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-addtable\/\" class=\"wikilink-published\">PennController.AddTable<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-checkpreloaded\/\" class=\"wikilink-published\">PennController.CheckPreloaded<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-downloadvoicebutton\/\" class=\"wikilink-published\">PennController.DownloadVoiceButton<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-feeditems\/\" class=\"wikilink-published\">PennController.FeedItems<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-footer\/\" class=\"wikilink-published\">PennController.Footer<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-gettable\/\" class=\"wikilink-published\">PennController.GetTable<\/a>\n<ul>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-gettable-filter\/\" class=\"wikilink-published\">.filter<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-gettable-setgroupcolumn\/\" class=\"wikilink-published\">.setGroupColumn<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-geturlparameter\/\" class=\"wikilink-published\">PennController.GetURLParameter<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-header\/\" class=\"wikilink-published\">PennController.Header<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-initiaterecorder\/\" class=\"wikilink-published\">PennController.InitiateRecorder<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-preloadzip\/\" class=\"wikilink-published\">PennController.PreloadZip<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-resetprefix\/\" class=\"wikilink-published\">PennController.ResetPrefix<\/a><\/li>\n<li><a href=\"https:\/\/lab.florianschwarz.net\/PennController\/wiki\/penncontroller-template\/\" class=\"wikilink-published\">PennController.Template<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div><div class='clear_column'><\/div><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"wiki_cats":[5],"wiki_tags":[],"class_list":["post-848","yada_wiki","type-yada_wiki","status-publish","hentry","wiki_cats-documentation"],"_links":{"self":[{"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/yada_wiki\/848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/yada_wiki"}],"about":[{"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/types\/yada_wiki"}],"author":[{"embeddable":true,"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/comments?post=848"}],"version-history":[{"count":9,"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/yada_wiki\/848\/revisions"}],"predecessor-version":[{"id":1792,"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/yada_wiki\/848\/revisions\/1792"}],"wp:attachment":[{"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/media?parent=848"}],"wp:term":[{"taxonomy":"wiki_cats","embeddable":true,"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/wiki_cats?post=848"},{"taxonomy":"wiki_tags","embeddable":true,"href":"https:\/\/lab.florianschwarz.net\/PennController\/wp-json\/wp\/v2\/wiki_tags?post=848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}