Thursday 6 November 2014

AJAX Interview Questions


Interview Questions

1.Define AJAX?

AJAX stands for "Asynchronous JavaScript and XML". It's basically a technique for creating Rich Internet 
Applications (RIA) that are faster as well as more interactive, using a combination of commonly used techniques as HTML/XHTML, CSS, Document Object Model (DOM), JavaScript, XML/XSLT and XMLHttpRequest object.
XMLHttpRequest object is the key basis of AJAX and makes it possible to communicate with the web server asynchronously and exchange data.

2.Please elaborate XMLHttpRequest Object further?

XMLHttpRequest is the core object in AJAX technology regardless of any implementation. XMLHttpRequest object is used to exchange data with a server seamlessly. Basically JavaScript uses this Object to exchange XML as well as text data between client and server. An AJAX implementation uses this object and communicate with server but it doesn't require the complete page to be refreshed.

3.How to send a request to server using XMLHttpRequest Object?

We can send a request to server using HTTP GET and POST methods as follows:

//Simple GET Request
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "TestFile.txt", true);
xmlHttp.send();

//Simple POST Request
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", "TestFile.txt", true);
xmlHttp.send();


4.What is ASP.NET AJAX?

Microsoft provided an implementation of AJAX functionality known as ASP.NET AJAX.
As we discussed in above interview question that AJAX is a combination of various techniques, so Microsoft simplified the usage of these techniques with its own implementation. ASP.NET AJAX is a set of extensions to ASP.NET and comes with reusable AJAX controls. Using ASP.NET AJAX, we can develop applications that can update partial page instead of a complete page refresh.

5.Difference between Synchronous and Asynchronous Postback?

In Synchronous postback, complete web page is sent to server and in return rendering the output (i.e. complete page), whereas in case of Asynchronous postback, partial page goes to the server and renders only partial (required) part of the page.

6.What are the basic controls in ASP.NET AJAX?

Following controls can be considered as core AJAX controls in ASP.NET.
·         ScriptManager
·         ScriptManagerProxy
·         UpdatePanel
·         UpdateProgress
·         Timer
Later more controls are added to ASP.NET AJAX library e.g. Script Loader, Client Data Context, Client Data Access, jQuery Integration etc.

7.What is a ScriptManager in ASP.NET AJAX?

In order to use AJAX functionality on a web page, we add a ScriptManager control to the page in most of the scenarios, because ScriptManager control register AJAX library scripts to that particular web page. We can have only one ScriptManager per page.
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

ScriptManager basically manages all ASP.NET AJAX resources of a web page, creates proxies for asynchronous web service call and also manages partial page updates... etc.

8.ScriptManager Vs ScriptManagerProxy?

As we understand that we can have only one ScriptManager control on a page but we can have multipleScriptManagerProxy controls.
Consider a scenario that we have ScriptManager in our MasterPage that is available for all content pages. Now, we wanted to register a web service in a particular page. So, we will not add another ScriptManager to that page instead we will add ScriptManagerProxy to it in order to avoid error.

9.What is the role of UpdatePanel in ASP.NET AJAX?

UpdatePanel is the control that facilitate the partial page rendering functionality in an ASP.NET application. As discussed earlier that using ASP.NET AJAX, we can communicate with a web server asynchronously and update a part of a page without a complete page postback. In order to apply partial page update/rendering, we can add one or more UpdatePanel controls to our ASP.NET Page as follows:
   <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="lblPanel" runat="server" Text="Update Panel Added."></asp:Label><br />
                <asp:Button ID="btnTestButton" 
                                   runat="server" 
                                  OnClick="btnTestButton_Click" 
                                  Text="Test Button" />
      </ContentTemplate>
    </asp:UpdatePanel>

10.What are the limitations of AJAX?

·         AJAX on an application will not work if JavaScript is disabled.
·         In some scenarios, it exposes vulnerability.
·         It will always be difficult to bookmark application state.
·         Application behavior may be slow in some scenarios, because of different loading time of controls on a single page.

11. What are the new features included in the Microsoft AJAX library?
The Microsoft AJAX library is a client-based JavaScript library that is compatible with all modern browsers and offers a lot of functionality as compared to JavaScript. This library is released with new features and fully supports ASP.NET 4.0'. The new features included in the Microsoft AJAX library are as follows:
  • Imperative syntax - Supports simple imperative syntax that is used to create and manage controls.
  • Script loader - Retrieves all scripts that are needed by one or more client component or control automatically and executes the scripts in the order in which they are received.
  • Client data access - Supports to access client data and display by client data control and client template.
  • Client datacontext - Supports read and write permission to data from a database.
  • The AdoNetDataContext class - Enables you to easily interact with an ADO.NET Data Services service.
  • jQuery integration - Helps to access the elements in your Web pages, work with client-side events, enable visual effects, and make it easier to use AJAX in your applications.
12. Explain the Step property of the NumericUpDownExtender control.
The Step property sets the steps for numeric increment and decrement. The default value is 1.

13. What are the new features of ASP.NET AJAX 4.0?
ASP.NET 4.0 AJAX includes several new features that provide more functionality to a user. These features are as follows:
  • Support for live data binding.
  • Support for client-side template rendering.
  • Support for declarative instantiation of client components.
  • Support for using the observer pattern on JavaScript objects and arrays.
  • Support for invoking ADO.NET data services and data contexts.
  • Support for the DataView control.
14. Why do we use the UpdateProgress control in AJAX?
The UpdateProgress control is somewhat related to the UpdatePanel control. The UpdateProgress control enables you to design a user-friendly interface when a Web page consists of a number of UpdatePanel controls for partial-page rendering.

The UpdateProgress control makes you aware of the status information about the partial-page updates in theUpdatePanel control.

15. What is JSON?
JSON is an abbreviation of JavaScript Object Notation. It is a safe and reliable data interchange format in JavaScript, which is easy to understand not only for the users but also for the machines.

16. How many validation controls are available in ASP.NET AJAX 4.0?
The following validation controls are available in ASP.NET AJAX 4.0:
  • FilteredTextBoxExtender - Enables you to apply filtering to a text box.
  • MaskedEditExtender and MaskedEditValidator - Restricts a user to enter only a certain pattern of characters in the TextBox by applying a mask to the input.
  • ValidatorCalloutExtender - Attaches to the ASP.NET validators so that the error messages are not displayed as a simple text but as a balloon-style ToolTip.
  • NoBot - Prevents the spam/bot from filling the input forms automatically and uses the Completely Automated Public Turing test to tell Computers and Humans Apart (CAPTCHA), which is a type of challenge-response test to ensure that the response is not generated by the computer.
  • PasswordStrengthExtender - Measures the strength of the password text entered within the text box by validating with the different strength specified parameters
17. What are the differences between AJAX and JavaScript?
The differences between AJAX and JavaScript are given as follows:
  • AJAX sends request to the server and does not wait for the response. It performs other operations on the page during that time. JavaScript make a request to the server and waits for response.
  • AJAX does not require the page to refresh for downloading the whole page while JavaScript manages and controls a Web page after being downloaded.
  • AJAX minimizes the overload on the server since the script needs to request once while JavaScript posts a request that updates the script every time.
18. Explain the UpdatePanel control.
The UpdatePanel control specifies the portions of a Web page that can be updated together. As the UpdatePanelcontrol refreshes only a selected part of the Web page instead of refreshing the entire page with a postback, you get more flexibility to create rich and client-centric Web applications.

Refreshing a selected part of the Web page is referred as partial-page update. You can add one or more UpdatePanelcontrol in the Web page, which automatically participates in partial-page update without custom client script. TheUpdatePanel control uses the UpdatePanel class to support the partial-page rendering.
19. What does the DynamicPopulateExtender control do?
The DynamicPopulateExtender control populates the contents of a control dynamically. It enables you to send an asynchronous call to the server that dynamically populates the contents of a control. TheDynamicPopulateExtender control replaces the contents of a control with the result of a Web service or page method call.

20. What does the MinimumPrefixLength property of the AutoCompleteExtender control do?
The MinimumPrefixLength property sets the minimum number of characters that must be entered before getting suggestions from the Web service.

21. What is the importance of client-side libraries?
Client-side libraries contain built-in code to make asynchronous calls over XMLHTTP. These libraries automatically handle browser compatibility issues. These libraries are based on a programming model similar to ASP.NET

22. Describe the situations in which AJAX should not be used.
You should not use AJAX if:
  • You want the page to show in a search engine, such as Google, because WebCrawler does not execute JavaScript code.
  • The browser does not support JavaScript.
  • You want to create a secure application.
23. What is the use of the ScriptManager control in AJAX?
·         The ScriptManager control is a core control that performs a key role in implementing the ASP.NET AJAX functionality. It helps to use JavaScript for the Microsoft AJAX Library. It should be noted that AJAX Library on a Web page can only be used if the Web page contains the ScriptManager control. This control makes use of theScriptManager class to maintain the AJAX script libraries and script files. It allows for partial page rendering, Web service calls, and use of ASP.NET AJAX Client Library by rendering the AJAX Library scripts to the browser.

24. How can you find out that an AJAX request has been completed?
·         You can find out that an AJAX request has been completed by using the readyState property. If the value of this property equals to four, it means that the request has been completed and the data is available.

25. Describe the AccordionExtender control.
·         The AccordionExtender control is similar to the CollapsiblePanelExtender control. It allows you to group multiple collapsible panels in a single control. At the same time, it also manages the collapsed and expanded state of each panel; therefore, expanding one panel at a time. In other words, the AccordionExtender control does not support expanding two or more panels simultaneously. Instead, the header templates of all the panels are always visible so that you can click on any of them to display the hidden contents. By default, the AccordionExtendercontrol opens with one panel as expanded.


Example:Call webservice from javascript
Welcome to the "Understand jQuery Ajax Function" article series. This series is targeted to novice developers that want to learn Ajax using the JQuey Ajax function. The previous example explained about calling a code-behind C# method using a jQuery Ajax function. You can read it here.

Understand jQuery Ajax function: Call code-behind C# method using jQuery Ajax method

In this article we will see how to call Web Service methods using a jQuery Ajax function. In a future article we will proceed to a WCF Service and the Web API.

Call Web Service from JQuey Ajax function

We will now call a C# Web Service method using a jQuery Ajax method. Try to understand the following code.

Step 1: Create simple web service

This is the first step, here we will create a simple web service that will be consumed by a JQuey Ajax method. So add one .asmx page to the current solution and modify the code as in the following example.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.Services;

namespace WebApplication
{
   
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
    [System.Web.Script.Services.ScriptService]
    public class DataService : System.Web.Services.WebService
    {

        [WebMethod]
        public string GetData()
        {
            Dictionary<string, string> name = new Dictionary<string, string>();
            name.Add("1", "Sourav Kayal");
            name.Add("2", "Ram mishra");
            string myJsonString = (new JavaScriptSerializer()).Serialize(name);
            return myJsonString;
        }
    }
}

As in the previous article, the code is very simple . Here are two things we need to keep in mind.

Don't forget to enable the attribute:

[System.Web.Script.Services.ScriptService]

Before the class definition. The second one is to add the "[WebMethod]" attribute before the function definition. So, here we have finished our Service settings. We can run this service to test it in a Web browser. Now we will set up a jQuery Ajax function to call the service.

Step 2: Implement jQuery Ajax function

Here is sample code to call Web Service method. The only changes we made compared to the code-behind fashion (in the previous article) is the URL. Here we specified the service location of the specific C# function.

In this context there is one more point to explain. In the case of the code-behind fashion we declared the C# method as a static method, but for the Web Service, it is not necessary to define the method as a static method.
 
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JavaScript.aspx.cs"Inherits="WebApplication.JavaScript" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 <script>

     $(document).ready(function () {

         $.ajax({
             type: "POST",
             url: "DataService.asmx/GetData",
             contentType: "application/json; charset=utf-8",
             dataType: "json",
             success: function (response) {
                 var names = response.d;
                 alert(names);
             },
             failure: function (response) {
                 alert(response.d);
             }
         });
     });
 </script>
</head>
<body>

<form id="frm" method="post">
    <div id="Content">

    </div>

</form>

</body>
</html>

Here is sample output.








2 comments:

  1. Can you please send me the direct link to download the Ajax Interview Questions that are recently asked in the previous examinations.

    ReplyDelete