Hi @avez
Hope you read the how at.js works at client side. Just to give you little context
Adobe Target at.js 2.x uses new API called Delivery API to retrieve optimized and personalized content from Target and showing to end user.
This API is based on REST - ( if you not sure about rest then this guide will help What is REST? ).
Prefetch -> It allows clients like mobile apps and servers to fetch content for multiple mboxes or views(for Single page Application) in one request, cache it locally, and later notify Target when the user visits those mboxes or views.
Execute -> The execute part of the request that will be evaluated on the server side immediately.
(Rendering part).
The prefetch mode can only be used for AB and XT activities.
you can able to see the network call in your browser like below or filter out with delivery
at.js 2.x - http://<client code>.tt.omtrdc.net/rest/v1/delivery
When you used prefetch, in response you can see content field contain the experience to show the user for a particular mbox. This is very useful when cached on your server so that when a user interacts with your web or mobile application within a session and visits an mbox on any particular page of your application, the experience can be delivered from the cache instead of making another Adobe Target Delivery API call. However, when an experience is delivered to the user from the mbox, a notification will be sent via a Delivery API call in order for impression logging to occur. This is because the response of prefetch calls are cached, which means that the user has not seen the experiences at the time the prefetch call happens.
I would recommend to read more about delivery api.
Hope this helps.