1. What are the advantages of using JavaScript libraries (like jQuery) to implement Ajax?
Answers:
• There is no
advantage
• Better cross-browser compatibility and faster speed of
development
• Fewer HTTP
requests and smaller loaded resources
2. True or false? Ajax can be used to open a connection from the server to the browser without the browser making an explicit request.
Answers:
• False
• True
3. What is the value of the "status" attribute of the completed XMLHttpRequest object if the Ajax request has pulled the response data from the browser cache? Consider only non-IE browsers.
Answers:
• 301
• 304
• 200
•
"cached"
4. Which protocol is used to transfer data in an AJAX request?
Answers:
• Hypertext Transfer Protocol, HTTP
• Asynchronous
Binary Transfer Protocol, ABTP
• AJAX Object
Protocol, AOP
• Advanced Server
Protocol, ASP
5. Ajax can be used to open a connection from the server to the browser without the browser making an explicit request.
Answers:
• False
• true
6. For the "same origin policy" to always allow an Ajax request, what attributes must be the same between the requesting context and the server?
Answers:
• IP subnet
• Second-level
domain only
• Full domain name
• Domain name, protocol, and port
7. What does the acronym "blob" stand for when referring to data types?
Answers:
• It is not an
acronym
• binned large
ordinal byte
• binary large object
• bytes left over
from bitstream
8. Which method on the XMLHttpRequest object is used to send custom HTTP headers with a request?
Answers:
• setXHRHeader
• setRequestHeader
•
sendAdditionalRequestHeader
• addHeader
9. In standard JavaScript, what makes asynchronous execution of Ajax calls possible?
Answers:
• Deferrals and
promises
• Events and callbacks
• Multi-threaded
operations
10. Which browser features and/or technologies must be enabled, at a minimum, for AJAX techniques to function properly?
Answers:
• Private browsing
must be enabled.
• JavaScript must be enabled.
• A Flash plugin
must be installed
• A Java plugin
must be installed and enabled.
• Cookies must be
enabled.
11. The primary benefit of using AJAX techniques in a web application is:
Answers:
• It makes it
easier to create accessible (usable by people of all abilities and
disabilities) web pages
• It makes web
applications "advanced".
• It makes web
applications more easily crawlable by search engines like Google, Yahoo and
Bing.
• It makes pages
more easily bookmarked, shared and navigated by users using standard browser
controls.
• It allows web applications to send asynchronous data
requests to a server without a user initiated page load.
12. Is it possible to add custom HTTP header to ajax request?
Answers:
• Yes, it is possible. setRequestHeader() method of
XMLHttpRequest object can be used to add a custom HTTP header
• Yes, it is
possible. Custom HTTP header can be added while initializing a request with
open() method
• Yes, it is
possible. Custom HTTP header can be added while initializing a request with
init() method
• No, it is not
possible
13. How do you manually abort an Ajax request after a certain amount of time?
Answers:
• Using setTimeout(), clearTimeout() and .abort()
• There is no way
to manually timeout Ajax requests
• Supply a
"timeout" argument in the request's .open() method
14. Which HTML5 feature can improve the experience of a user using the "back" and "forward" buttons when using AJAX techniques?
Answers:
• New browser
chrome events: onbackbuttonpressed and onforwardbuttonpressed.
• The history API with pushState, replaceState and history
events.
• The version API
that allows versioning page interactions.
• The storage API
with css3 full page state saving.
15. What is the difference between the XMLHttpRequest object's .status and .statusText attributes?
Answers:
• .status returns a numeric-only code instead of the full HTTP
response, which can be found in .statusText
• .status is
read-only, while .statusText can be modified
• .statusText is
the more widely supported of the two across browsers
• .statusText is
not a valid attribute of the XMLHttpRequest object
16. What is the value of the "status" attribute of the completed XMLHttpRequest object if the Ajax request has pulled the response data from the browser cache? Consider only non-IE browsers.
Answers:
• 301
• 200
•
"cached"
• 304
17. The onreadystatechange change event is used to invoke behavior when
Answers:
• the browser
window is closed or resized.
• elements on a
page change appearance.
• users navigate
away from a page with unsaved or uncommitted changes.
• the status of the asynchronous request changes.
• a user indicates
they are ready to continue from a dialog prompt.
18. If an Ajax request loads JSON-formatted responseText into the variable returnedData, what code will turn the data into a readable JSON object in modern browsers, including IE8 and above?
Answers:
• JSON.parse(returnedData);
• returnedData.parse("JSON");
•
JSON.stringify(returnedData);
•
returnedData.parse();
19. What is the JavaScript syntax for generating an XML HTTP request object and assigning it to the "xhr" variable? Consider only modern browsers, plus IE7 and above.
Answers:
• var xhr = new
XMLHTTPRequest();
• var xhr = new XMLHttpRequest();
• var xhr =
navigator.XMLHTTPRequest();
• var xhr =
window.XmlHTTPRequest();
20. What is the preferred method for maintaining back/forward button and crawler functionality in Ajax-driven web applications?
Answers:
• < or > in
the URL
• history.pushState()
• There is no
effective method
•
window.location()
21. True or false? A GET request submitted through Ajax can never cause the server to delete data.
Answers:
• True
• False
22. What is the value of the .status attribute of the completed XMLHttpRequest object if the Ajax request needed to follow a server-side redirect before successfully finding the intended resource?
Answers:
•
"redirected"
• 304
• 301
• 200
23. How response will be parsed if responseType is set to "document" and the request has been made asynchronously?
Answers:
• none of the
above
• as a binary
stream
• as a text/html stream
• as an empty
string
• as a text/xml
stream
24. Most JavaScript libraries that provide AJAX support include this header in AJAX requests by default.
Answers:
• X-Forwarded-For:
XMLHttpRequest
•
X-Request-Option: Asynchronous
• X-Request-Type:
AJAX
•
Proxy-Authorization: Asynchronous
• X-Requested-With: XMLHttpRequest
25. What is the purpose of Ajax long-polling?
Answers:
• To check
server-side functionality before executing client-side code
• To allow offline
functionality in Ajax-driven web applications
• To allow
cross-domain data transfer
• To keep a server connection open for two-way communication
26. What does JSON do?
Answers:
• A lightweight,
HTML5, browser-based database for storing client-side data.
• A binary protocol,
based on JavaScript, for the transmission of application state
• A data serialization and interchange format using a subset
of JavaScript syntax
• A JavaScript
library for transmitting data between clients and servers.
• A browser-only
data serialization and interchange format based on JavaScript.
27. Can an XMLHttpRequest object be used to receive binary data?
Answers:
• Yes, in newer browsers using the responseType property and
in older browsers by overriding the mime type of the response.
• Yes, but only
when transferring image files.
• Yes, but only in
newer browsers by using the responseType property specified in the Level 2 XHR
specification.
• No, XHR requests
only allow text transfer between server and client.
28. What's wrong with the following code? function check_for_request_done() { if (xhr.readyState == 4) { clearInterval(timer); do_something_with_result(xhr); } } var xhr = new XMLHttpRequest(); xhr.open("GET", "/resource", true); xhr.send(); var timer = setInterval(check_for_request_done, 100);
Answers:
• The timer
interval (100ms) is way too fast, a longer polling interval should be chosen to
detect for response.
• This code is polling a timer rather using the
onreadystatechange event to check the state of the async request.
• The wrong
readystate value is being checked for a complete request. The response should
only be used when readyState == 5.
• The resource is
being fetched synchronously so there's no need to wait for a response.
29. If the server is expecting JSON-formatted information in the request, what code will turn the JavaScript object dataToSend into data you can send to the server (consider modern browsers only, including IE8 and above)?
Answers:
•
JSON.parse(dataToSend);
•
dataToSend.stringify();
• JSON.stringify(dataToSend);
•
dataToSend.stringify("serial");
30. What is XSS?
Answers:
• A development
framework that assists in writing Ajax-driven applications
• A JavaScript
rendering engine
• An extensible
stylesheet format designed to be used with Ajax
• Malicious client-side code injection
31. Can you make an XMLHttpRequest asynchronous call to a page on a different top level domain from the current page's top level domain?
Answers:
• No, browser
sandboxing rules prevent any asynchronous requests between different document
domains.
• In newer browsers cross-domain requests can be configured
but only when servers use special headers to explicitly allow some cross domain
requests.
• Yes, always.
• Yes, when the
P3P header is returned from the server and properly configured.
• Yes, when the
two top level domains share the same SSL certificate.
32. Which of the HTTP actions is an Ajax XML HTTP request capable of sending to a server?
Answers:
• GET, POST, and
DELETE
• GET, POST, PUT, and DELETE
• GET and POST
• GET, POST and
PUT
33. What does CORS stand for?
Answers:
• Central
organized repository service
• Cross-origin resource sharing
• Cross-origin
request system
• Confirmed origin
response status
34. When your Ajax request is complete, what attribute of the XML HTTP request object contains the returned data?
Answers:
• response
• responseData
• responseText
• returnedData
35. What is the syntax for the event listener that monitors whether the XMLHttpRequest object's readyState attribute has changed?
Answers:
• onProgress
• onprogress
• onreadystatechange
•
onReadyStateChange
36. Can you perform file uploads using AJAX requests alone?
Answers:
• No, not without
additional plugins and hacks.
• Yes
• Yes, but only when using newer browsers and HTML5 features.
37. What is the name of the object which provides CORS support in Internet Explorer 8 and Internet Explorer 9?
Answers:
• CORSRequest
• CDomainRequest
• XMLHttpRequest
• None of the
above
• XDomainRequest
38. Which readystate value indicates the response has been fully received from the asynchronous request?
Answers:
• 200 (response
OK)
• true (response
received)
• 1 (readystate
received)
• "OK"
(response good)
• 4 (readystate complete)
39. What is the CORS-enabled Ajax request object constructor in IE8-9?
Answers:
• new
CorsRequest();
• new
CORSRequest();
• new XDomainRequest();
• new
XMLHttpRequest();
40. Your cross-origin Ajax request is causing your console to throw the error "Resource interpreted as Script but transferred with MIME type application/json. Uncaught SyntaxError: Unexpected token :" What might be happening?
Answers:
• You used the
incorrect callback parameter in your request URL
• The server is
rejecting your cross-origin request because you did not supply the correct
headers
• The wrong MIME
type has been selected in your Ajax configuration
• The server is returning an unencapsulated JSON object which
is being executed as JSONP
41. Which of these is NOT an advantage of using Ajax over server-side processing?
Answers:
• Client-side
responsiveness
• Reduced server
processing load
• Cross-browser compatibility
• Lazy-loading of
resources
42. What is the proper way to execute a callback function while making a "synchronous" request?
Answers:
•
req.trigger(callback_function_name);
• Callback functions are used with "asynchronous"
requests only
•
req.onreadystatechange = callback_function_name;
• req.readyState =
callback_function_name;
43. According to the W3C specification, which HTTP methods should throw a security exception when used with XMLHttpRequest?
Answers:
• OPTIONS, GET,
PUT
• PATCH, HEAD, or
OPTIONS
• PATCH or PLACE
• DRAFT, VALIDATE
or SAVE
• CONNECT, TRACE, or TRACK
44. How would you configure a *synchronous* GET request to "/resource" after instantiating a new XMLHttpRequest object: var xhr = new XMLHttpRequest();?
Answers:
• xhr.sync("GET",
"/resource");
•
xhr.open("GET", "/resource", true);
• xhr.open("GET", "/resource", false);
•
xhr.request("/resource");
•
xhr.open("GET", "/resource");
45. What is the technical limitation to implementing user login entirely on the client side using Ajax?
Answers:
• Client-side code is inherently insecure
• Client-side data
storage is limited to 5MB
• There is no
technical limitation; it is a common practice
• Client-side data
is not persisted across browser sessions
46. How does Google recommend you make an Ajax-dependent page accessible to their web crawler?
Answers:
• Use a robots.txt
file to transmit the relevant data to the crawler
• Use Ajax to progressively enhance server-side processing,
rather than to replace it
• Add a
<meta> tag with the value "dynamic='true'"
47. What happens if an Ajax call completes (and calls its callback function) when other JavaScript is currently running?
Answers:
• The Ajax callback function will be queued until the
currently-running code completes
• The Ajax
callback function will run immediately in another thread, allowing the
currently-running code to complete as normal
• The
currently-running code will terminate, and the Ajax callback function will be
called immediately
48. What HTML attribute would you use to indicate to a screenreader that an element of the page may update using Ajax while out of the user's focus?
Answers:
• aria-active
• aria-live
• aria-polite
• aria-updates
49. What value of the XMLHttpRequest object's readystate attribute indicates that the response data (i.e. not the headers) is currently being sent back from the server?
Answers:
• 3
• The readystate
attribute does not provide this information
• 2
•
"loading"
50. How do you detect errors in Ajax REQUESTS?
Answers:
• check if .status
!== 200
• check if
.readyState !== 4
• the onerror event
51. Ajax is frequently expanded as "asynchronous JavaScript and XML," which is misleading. Which of these words is not central to Ajax's functionality?
Answers:
• JavaScript
• asynchronous and XML
• XML
• asynchronous
52. When receiving an image from the server, the responseType attribute of your XMLHttpRequest object must be set to:
Answers:
• "arraybuffer" or "blob"
•
"image"
• "blob"
•
"arraybuffer"
53. What HTTP response header is expected in reply to a CORS request?
Answers:
•
Cross-Origin-Permissions
• Access-Control-Allow-Origin
• Allow-CORS
•
Allow-Cross-Origin-Access
54. You've created an XMLHttpRequest object, xhr, and properly called open as well as send on the object. When you check xhr.status and it's 0 and your responseText is null. What's the most likely explanation of what happened?
Answers:
• Your request was canceled either due to a failed connection
or a user action.
• The target
resource was served from the browser's cache.
• The browser has
initiated too many simultaneous XHR requests and this request has been queued.
• The server
encountered an unknown error.
• The request has
not yet connected to the server.
55. What arguments MUST be supplied to an XMLHttpRequest object's .open() method, and in what order?
Answers:
• HTTP method as string, URL as string
• URL as string,
HTTP method as string, CORS flag as boolean
• HTTP method as
string, URL as string, async flag as boolean, username as string, password as
string
• URL as string,
HTTP method as string, URL parameters as string
56. What XMLHttpRequest method is used to override MIME type returned by the server?
Answers:
• init()
• setHeader()
• overrideMimeType()
•
setRequestHeader()
57. How does JSONP work?
Answers:
• It sends an HTTP
"Access-Control-Allow-Origin" header to the server that asks for
permission to make a cross-origin request
• It encodes
server responses in a special data type that is ignored by the browser's
JavaScript parser
• It makes server response text act like an injected
<script> element
58. You're issuing a request to "/resource" using XMLHttpRequest (xhr) where the server returns a 301 or 302 status code, what happens?
Answers:
• Depends on how
the XHR object is configured. If xhr.redirects=false, you will need to manually
issue new requests otherwise it will automatically follow 301 and 302
redirects, unless the location is on a different domain.
• The readystate
will halt at 3 and you must detect the 301 or 302 header and call
xhr.continue() for each 301/302 response.
• The readystate will
advance to 4 but the responseText and responseXML will be null. You will need
to issue a new request to the destination of
xhr.getResponseHeader("Location").
• The XHR object will automatically and transparently follow
the redirects to the new location for the resource, unless it's on a different
domain.
59. What is the value of the response property of XMLHttpRequest object if readyState property equal to 3?
Answers:
• undefined
• 0
• null
• empty string
• partial response
body
60. Which property of the popstate event contains a copy of the history entry's state object?
Answers:
• state
• copyState
• currentState
• none of the
above
• historyState
61. In non-IE browsers, what attribute should you check your XMLHttpRequest object for in order to see if it supports CORS?
Answers:
• xDomain
• hasCors
• crossDomain
• withCredentials
62. You've created an XMLHttpRequest object, xhr, and properly called open as well as send on the object. When you check xhr.status and it's 0 and your responseText is null. What's the most likely explanation of what happened?
Answers:
• The target
resource was served from the browser's cache.
• The request has
not yet connected to the server.
• The browser has
initiated too many simultaneous XHR requests and this request has been queued.
• Your request was canceled either due to a failed connection
or a user action.
• The server
encountered an unknown error.
63. What is the value of the .status attribute of the completed XMLHttpRequest object if the Ajax request needed to follow a server-side redirect before successfully finding the intended resource?
Answers:
• 301
•
"redirected"
• 304
• 200
64. When using async=true in xmlhttp.open function
Answers:
• connection not
established
• response is not
constructed
• server crashed
• specify a function to execute when the response is ready in
the onreadystatechange event
65. Aalways use POST requests in xmlhttp.open when
Answers:
• update a file or database on the server
• data size is small
• does not require
to send user inputs
• security is not
an issue
66. The primary benefit of using AJAX techniques in a web application is:
Answers:
• It makes it
easier to create accessible (usable by people of all abilities and
disabilities) web pages
• It makes web
applications more easily crawlable by search engines like Google, Yahoo and
Bing.
• It allows web applications to send asynchronous data
requests to a server without a user initiated page load.
• It makes web
applications "advanced".
• It makes pages
more easily bookmarked, shared and navigated by users using standard browser
controls.
67. If an Ajax request loads JSON-formatted responseText into the variable returnedData, what code will turn the data into a readable JSON object in modern browsers, including IE8 and above?
Answers:
•
returnedData.parse("JSON");
•
JSON.stringify(returnedData);
•
returnedData.parse();
• JSON.parse(returnedData);
68. AJAX applications are browser- and platform-dependent!
Answers:
• False
• True
69. How do you manually abort an Ajax request after a certain amount of time?
Answers:
• Supply a
"timeout" argument in the request's .open() method
• Using setTimeout(), clearTimeout() and .abort()
• There is no way
to manually timeout Ajax requests
70. What's wrong with the following code? function check_for_request_done() { if (xhr.readyState == 4) { clearInterval(timer); do_something_with_result(xhr); } } var xhr = new XMLHttpRequest(); xhr.open("GET", "/resource", true); xhr.send(); var timer = setInterval(check_for_request_done, 100);
Answers:
• The timer
interval (100ms) is way too fast, a longer polling interval should be chosen to
detect for response.
• The resource is
being fetched synchronously so there's no need to wait for a response.
• This code is polling a timer rather using the
onreadystatechange event to check the state of the async request.
• The wrong
readystate value is being checked for a complete request. The response should
only be used when readyState == 5.
71. If the server is expecting JSON-formatted information in the request, what code will turn the JavaScript object dataToSend into data you can send to the server (consider modern browsers only, including IE8 and above)?
Answers:
• dataToSend.stringify();
•
dataToSend.stringify("serial");
•
JSON.parse(dataToSend);
• JSON.stringify(dataToSend);
72. Which readystate value indicates the response has been fully received from the asynchronous request?
Answers:
• "OK"
(response good)
• true (response
received)
• 1 (readystate
received)
• 4 (readystate complete)
• 200 (response
OK)
73. How would you configure a *synchronous* GET request to "/resource" after instantiating a new XMLHttpRequest object: var xhr = new XMLHttpRequest();?
Answers:
•
xhr.request("/resource");
• xhr.open("GET", "/resource", false);
•
xhr.open("GET", "/resource", true);
•
xhr.sync("GET", "/resource");
•
xhr.open("GET", "/resource");
74. How does Google recommend you make an Ajax-dependent page accessible to their web crawler?
Answers:
• Use a robots.txt
file to transmit the relevant data to the crawler
• Use Ajax to progressively enhance server-side processing,
rather than to replace it
• Add a
<meta> tag with the value "dynamic='true'"
75. What value of the XMLHttpRequest object's readystate attribute indicates that the response data (i.e. not the headers) is currently being sent back from the server?
Answers:
• The readystate
attribute does not provide this information
• 2
•
"loading"
• 3
76. What is the proper way to execute a callback function while making a "synchronous" request?
Answers:
•
req.onreadystatechange = callback_function_name;
• Callback functions are used with "asynchronous"
requests only
•
req.trigger(callback_function_name);
• req.readyState =
callback_function_name;
77. How does JSONP work?
Answers:
• It makes server response text act like an injected
<script> element
• It sends an HTTP
"Access-Control-Allow-Origin" header to the server that asks for
permission to make a cross-origin request
• It encodes
server responses in a special data type that is ignored by the browser's
JavaScript parser
78. When receiving an image from the server, the responseType attribute of your XMLHttpRequest object must be set to:
Answers:
•
"arraybuffer"
• "arraybuffer" or "blob"
• "blob"
•
"image"
79. You're issuing a request to "/resource" using XMLHttpRequest (xhr) where the server returns a 301 or 302 status code, what happens?
Answers:
• The readystate
will advance to 4 but the responseText and responseXML will be null. You will
need to issue a new request to the destination of
xhr.getResponseHeader("Location").
• Depends on how
the XHR object is configured. If xhr.redirects=false, you will need to manually
issue new requests otherwise it will automatically follow 301 and 302
redirects, unless the location is on a different domain.
• The XHR object will automatically and transparently follow
the redirects to the new location for the resource, unless it's on a different
domain.
• The readystate
will halt at 3 and you must detect the 301 or 302 header and call
xhr.continue() for each 301/302 response.
80. How can you load JavaScript from a different file into your web application?
Answers:
• <script>
tags
• All of these
• JSONP
• CORS
81. After a request completes, which property of the XMLHttpRequest object can be used to retrieve a DOM representation of a remote XML document?
Answers:
• documentXML
• XMLDom
• XMLDoc
• responseText
• responseXML
No comments:
Post a Comment