Hello There !!! Please check out some cool stuff I've developed from "My Apps" section on the right hand side of this page. I would really appreciate your feedback/suggestions/reviews/comments.
Want To Search Something Else? Just Google It !

Tuesday, September 20, 2011

Ajax Best Practice in Portlets


Since the time AJAX has come into picture and with various new AJAX frameworks (like DOJO, JQuery, Yahoo UI Library, Google Web Tollkit etc), most of the websites now-a-days are enriched with AJAX to provide Outstanding and Stunning GUI features to the users.  With Portals and Portlet technologies, the web development has become even better than ever before.

This being said, definitely there are plenty of scenarios where we would like to use AJAX with Portlets too. Now this is a bit tricky. There is a subtle difference in implementation (processing user request, serving web response, maintaining state, maintaining lifecycle of server side components like servlets, jsp etc) between regular web applications and portlet based applications.  This difference makes AJAX implementation a bit tricky when it comes to Portlets.

Here, I will explain how to implement AJAX in both JSR 168 and JSR 286 Portlets.

Let's start understanding it with the difference I described above.  Web applications don't have states/modes similar to Portlets (View Mode, Edit Mode etc).

Following is a lifecycle diagram of a java based web application.


Life cycle Of A Servlet Based Web Application


Here as we see, all the request (be it a normal web request or an AJAX request) are processed by only 1 method: service method of the servlet. Also there is no need of generated markup (output HTML, XML etc by service method) aggregation as there is only 1 application running at a time.

Now, moving to Portlets from Web Application, the scenario is a bit different.  In case of portlets, there are multiple web-applications (called portlets) which runs in small i-frame like windows on a single web page. All of these portlets run under a Portal application (controller by portal container) which controls multiple aspects of the entire application like user-interaction with individual portlets, their window states (Minimized, Maximized etc), entire web-page output (which is eventually aggregation of markup generated by individual portlets) etc.  Following block diagram illustrates how overall portal application works:

Portal Web Application


When user interacts with a particular portlet, portal container makes sure request is passed to appropriate portlet, and generated output (markup) is aggregated appropriately with entire web page output without affecting other portlets.

Following diagram shows how request are processed in a portlet based application.




Here we can see that web requests are divided into two categories: 

RenderRequest:  These are the requests when portlets are in view mode and being rendered (e.g. when the first time users requests a web page via HTTP GET or POST URL request)

ActionRequest:  These are HTTP GET or POST requests initiated due to user interaction with portlet (e.g. clicking any URL on the page, submitting form etc).


Here if we see, every request - be it a render request or action request, goes through render phase (doView() method).  This means, Portlet URLs enable window state changes and mode changes that require a subsequent render request to the portal or portlet container. The result? The response contains not only the content for the target portlet, but also that for the entire portal, including all the other rendered portlets. This is true in case of AJAX request too.  Following figure shows an example of a Sample JSR168 Portlet that made an asynchronous call with actionURL, causing the entire portal page to be embedded in the portlet window as a part of AJAX response. This is obviously what we don't want.


AJAX Implementation in JSR-168 using processAction() method
In above figure, we are supposed to get only "AJAX Response using Portlet 1.0 Spec - processAction() method ..." as AJAX response, however along with that, we got entire HTML of the portlet which got appended to the response by doView() method after request was processed by processAction() method. 

To resolve this problem, we have two solutions depending on which portlet spec. you are using. 

For JSR-168 based portlets, there is no provision in the portlet specification which says how to deal with AJAX requests. 

So for JSR-168 portlets, we have to follow a trick.  Well, what's that ? 

Answer to this question lies in Portlet Specification 1.0 (JSR-168). 

Following is the snippet from Portlet Specification 1.0 : 

"A Portlet Application is also a Web Application. The Portlet Application may contain servlets and JSPs in addition to portlets. Portlets, servlets and JSPs may share information through their session.

The 
PortletSession must store all attributes in the HttpSession of the portlet application. A direct consequence of this is that data stored in the HttpSession by servlets or JSPs is accessible to portlets through the PortletSession in the portlet application scope. Conversely, data stored by portlets in the PortletSession in the portlet application scope is accessible to servlets and JSPs through the HttpSession."

This means, we can divide our logic into two pieces: 

For regular portlet requests, we can extend GenericPortlet class and implement doView() and processAction() methods in the normal way we always do. 

For Ajax requests, we can write a separate Servlet which will handle ajax requests like normal web applications do. 

Following figure shows what exactly I am talking about. 

Ajax Implementation Best Practice for JSR-168 Portlet



So what all we need to do is: 

1. Write a class extending GenericPortlet (or any other portlet like MVCPortlet in Liferay etc) for regular general portlet request processing.  

2. Write a servlet to handle ajax requests like following:

public class AjaxServlet extends HttpServlet {
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

              //Write your business logic for Ajax processing here
}

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

}



3. Write javascript functions to implement ajax call (preferably using some good javascript/ajax library like jquery, dojo etc). 

Following in an example of such a javascript function using jquery. 

function <portlet:namespace/>_callAjax()
{
    var url='<%=(request.getContextPath() + "/AjaxServlet")%>';
 
    //Make ajax call
    
    $.ajax({
    type : "POST",
    url : url,
    cache:false,
    dataType: "text",
    success : function(data) 
    {
          //Write you success logic here
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) 
    {
          //Write you error-handling logic here
    }
  });
}; 


That's it. You are done :)


Now, lets's move to JSR-286 Portlets (Portlet Specification 2.0).  Here, the situation is better in a way that we don't have to worry about writing a separate servlet for Ajax requests.  Portlet itself provides special method called serveResource(ResourceRequest request, ResourceResponse response) to do this. 

Requests made using ResourceRequest (generated by resourceURL tags provided by portlet taglib), are served by serveResource() methods. 

Following figure shows how it works:


Ajax Implementation in JSR-286 Portlet



Following is a sample PortletClass (extending GenericPortlet) showing how to do it. 


package com.jsr286.portlets;

import java.io.IOException;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;

import com.liferay.portal.util.PortalUtil;

public class TestPortlet extends GenericPortlet {

protected String viewJSP;

public void init() throws PortletException 
viewJSP = getInitParameter("view-jsp");
}

protected void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException {

System.out.println("########### Inside com.jsr286.portlets.TestPortlet ... doView() method.....");
include(viewJSP, request, response);

}


public void processAction(ActionRequest request, ActionResponse response)
throws PortletException, IOException {

System.out.println("########### Inside com.jsr286.portlets.TestPortlet ... processAction() method.....");
HttpServletResponse httpResp = PortalUtil.getHttpServletResponse(response);
        httpResp.setContentType("text");
        httpResp.getWriter().print("AJAX Response using Portlet 2.0 Spec - processAction() method .... ");
        httpResp.flushBuffer();
        return;
}

protected void include(String path, RenderRequest renderRequest,RenderResponse renderResponse) throws IOException, PortletException 
{
PortletRequestDispatcher portletRequestDispatcher = getPortletContext().getRequestDispatcher(path);
if (portletRequestDispatcher == null
System.out.println(path + " is not a valid include");
else 
portletRequestDispatcher.include(renderRequest, renderResponse);
}
}
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException,IOException
{
System.out.println("########### Inside com.jsr286.portlets.TestPortlet ... serveResource() method.....");
        response.setContentType("text");
        response.resetBuffer();
        response.getWriter().print("Correct Ajax Resopnse from Portlet 2.0 Spec - serveResource() method .... ");
        response.flushBuffer();
}


}


And following is a JSP fragment showing how to place AJAX call using resourceURL. 

<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>

<portlet:defineObjects />

<portlet:resourceURL var="ajaxResourceUrl"/>

<script type="text/javascript">


function <portlet:namespace/>_callAjax()
{
    var url = <%=ajaxResourceUrl%>';
    //Make ajax call 
    
    $.ajax({
    type : "POST",
    url : url,
    cache:false,
    dataType: "text",
    success : function(data) 
    {
          //Write you success logic here
    },
    error : function(XMLHttpRequest, textStatus, errorThrown) 
    {
          //Write you error-handling logic here
    }
  });
};

</script>


That's it on how to implement AJAX in both JSR-168 and JSR-286 portlets.  

Please provide your valuable comments/suggestions. 

209 comments:

  1. This is really very help full, please keep writing blogs.

    ReplyDelete
  2. Very very helpful and explained in a lucid language..

    ReplyDelete
  3. superbly explained !

    ReplyDelete
  4. Anonymous said...
    Need more info
    September 28, 2011 6:57 PM

    Please let me know what more info you need. I would be happy to help you.

    ReplyDelete
  5. Article is very informative...really good job.

    ReplyDelete
  6. Thank's for writing this blog .......it is very help ful for me..................

    ReplyDelete
  7. document.getElementById("alrt").value; this statment we will use for ordinary ajax to retrive form data, buti want to retrieve data inside aui:javascript. tell me what should i do for this

    ReplyDelete
    Replies
    1. @Nagu: I believe you should still be able to use document.getElementById("alrt").value in aui:javascript also. However, if you wan't to use AUI specifically, you can use it like this:

      A.one('#alrt').get('value'));

      Delete
  8. Hi Jignesh,
    Very informative article... Could you also post the logs (sysout logs)for the JSR 268 approach?

    ReplyDelete
  9. Excellent article -- well-written, clear, concise and with great diagrams. FYI -- in case it helps the other poster who requested more info: I came to this page knowing servlets and after I had learned the basics of portlets (including the lifecycle, the methods on the portlet interface, looking at the implementation of GenericPortlet, tc.) so ... I had the foundation and was looking solely for info on AJAX how-to (dunno if it would have been as clear to me w/o the original foundation).

    ReplyDelete
  10. Hi Jignesh,

    Thanks for the article! I have a task where I need liferay scheduler to call a serveresource() method to read a resource and store in some location. Could you please help me how we can achieve this.

    ReplyDelete
    Replies
    1. rav, sure I can help you. Send me more details about what exactly you are trying to achieve on jignesh.shukla@gmail.com

      Delete
  11. Thank you for this valuable piece of information, great job!

    ReplyDelete
  12. Hello Sir This is Santoshkumar and you provide Great Information ,If possible could you provide some sample code to do this (business logic) because i ma new to both AJAX and Portal . If you provide that is great help to me Thanks...!

    ReplyDelete
  13. Hi Jignesh.
    Thank you for your stunning presentation. It was really helpful for me. But, what about struts2?
    How can I use ajax in struts2?
    Thanks a lot.

    ReplyDelete
  14. Good job.. keep it up.. Very clearly explained. Thanq so much. It was of great use to me.. keep going!!

    ReplyDelete
  15. Well explained. Made my job a lot easier. Thank you.

    ReplyDelete
  16. This post saved hours or days of research. Thanks!

    ReplyDelete
  17. Hi Jignesh,
    clearly understood. but can tell how to implement ajax call in jsr 286 without using the liferay portlets.

    ReplyDelete
    Replies
    1. Hi Vogue

      serveResource() method is from JSR 286 specification only. So regardless of you are using Liferay or any other portal server, you should be able to use serveResource() method as is to implement AJAX in your JSR 286 based portlet.

      Let me know if you need more help. You can reach me on jignesh.shukla@gmail.com

      Delete
  18. Why can't I see any of the images?

    ReplyDelete
    Replies
    1. Something went wrong with blogger.com probably. I just added all the images again.

      Delete
  19. I am new to this AJAX and PORTALS

    ReplyDelete
  20. Very nice article! Also new to all this. I need to make ajax call to serveresource to call rest service. Can you help with implementation?

    ReplyDelete
  21. Your blog has given me that thing which I never expect to get from all over the websites. Nice post guys!

    ReplyDelete
  22. Thanks for sharing blog web portal development site.

    web development service

    ReplyDelete
  23. Thank you for providing Ajax best practice in portlets, Ajax is having a good field in the market many use it for developing certain projects As I am a PMP Certified and I have completed my PMP Training in Mumbai, Where I was supposed to know about different project's in and around the fields of the project at some means of point they were using Ajax and all Thank you for the information and well kindly Keep Updating the Blog

    ReplyDelete
  24. This comment has been removed by the author.

    ReplyDelete
  25. Australia Best Tutor is one of the best Online Assignment Help providers at an affordable price. Here All Learners or Students are getting best quality assignment help with reference and styles formatting.

    Visit us for more Information

    Australia Best Tutor
    Sydney, NSW, Australia
    Call @ +61-730-407-305
    Live Chat @ https://www.australiabesttutor.com




    Our Services

    Online assignment help Australia
    my assignment help Australia
    assignment help
    help with assignment
    Online instant assignment help
    Online Assignment help Services

    ReplyDelete
  26. Nice article . Thank you for this beautiful content, Keep it up. Techavera is the best
    Python training in noida
    Visit us For Quality Learning.Thank you

    ReplyDelete
  27. Thanks for sharing this valuable post with us.
    Javascript Course

    ReplyDelete
  28. Thanks for your informative article, Your post helped me to understand the future and career prospects & Keep on updating your blog with such awesome article.
    java training in annanagar | java training in chennai

    java training in marathahalli | java training in btm layout

    java training in rajaji nagar | java training in jayanagar

    java training in chennai

    ReplyDelete
  29. The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
    Devops Training courses

    Devops Training in Bangalore

    Devops Training in pune

    ReplyDelete
  30. Just stumbled across your blog and was instantly amazed with all the useful information that is on it. Great post, just what i was looking for and i am looking forward to reading your other posts soon!
    angularjs-Training in velachery

    angularjs Training in bangalore

    angularjs Training in bangalore

    angularjs Training in btm

    angularjs Training in electronic-city

    angularjs online Training

    ReplyDelete
  31. Well researched article and I appreciate this. The blog is subscribed and will see new topics soon.
    Selenium training in Chennai

    Selenium training in Bangalore

    ReplyDelete
  32. Thanks for sharing this useful informative post to our knowledge, Actually OBIEE training will mostly concentrate on real time issues rather than simply teaching you the OBIEE course.
    Devops Training in Chennai | Devops Training Institute in Chennai

    ReplyDelete
  33. Thank you for sharing such great information very useful to us.
    CCNA Training in Gurgaon

    ReplyDelete
  34. Great article about Ajax information, very helpful for Ajax users. Really appreciated.

    ExcelR Data Science Bangalore

    ReplyDelete
  35. I really appreciate the kind of topics you post here. Thanks for sharing us a great information that is actually helpful. Good day!

    DATA SCIENCE COURSE

    ReplyDelete
  36. This comment has been removed by the author.

    ReplyDelete
  37. Good Post! Thank you so much for sharing this pretty post, it was so good to read and useful to improve my knowledge as updated one, keep blogging.
    Devops Training in Electronic City

    ReplyDelete
  38. Your info is really amazing with impressive content..Excellent blog with informative concept. Really I feel happy to see this useful blog, Thanks for sharing such a nice blog..
    If you are looking for any Data science Related information please visit our website best course for data science page!

    ReplyDelete
  39. For Hadoop Training in Bangalore Visit : HadoopTraining in Bangalore

    ReplyDelete
  40. Thank you for sharing such a nice and interesting blog with us. I have seen that all will say the same thing repeatedly. But in your blog, I had a chance to get some useful and unique information.
    Digital Marketing Training In Hyderabad
    sem training in hyderabad
    seo training in hyderabad
    SMM Training In Hyderabad

    ReplyDelete
  41. Hey Nice Blog!! Thanks For Sharing!!! Wonderful blog & good post. It is really very helpful to me, waiting for a more new post. Keep Blogging ! Here is the best angular training with free Bundle videos .

    contact No :- 9885022027.

    ReplyDelete
  42. thank you so much for this nice information Article, Digitahanks for sharing your post with us.Real Time Experts training center bangalore

    ReplyDelete
  43. This is a wonderful article, Given so much info in it, These type of articles keeps the users interest in the website, and keep on sharing more ... good luck.

    Digital marketing course mumbai

    ReplyDelete
  44. Hi! This is my first visit to your blog! We are a team of volunteers and new initiatives in the same niche. Blog gave us useful information to work. You have done an amazing job!

    machine learning course

    artificial intelligence course in mumbai

    ReplyDelete

  45. Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
    blockchain online training
    best blockchain online training
    top blockchain online training

    ReplyDelete
  46. This comment has been removed by the author.

    ReplyDelete
  47. Hey, i liked reading your article. You may go through few of my creative works here
    Glitch
    Exercism

    ReplyDelete
  48. It’s good to check this kind of website. I think I would so much from you. ExcelR Data Analytics Course

    ReplyDelete
  49. I will really appreciate the writer's choice for choosing this excellent article appropriate to my matter.Here is deep description about the article matter which helped me more.
    Know more about Data Analytics
    I am genuinely thankful to the holder of this web page who has shared this wonderful paragraph at at this place

    Cool stuff you have, and you keep overhaul every one of us.

    ReplyDelete
  50. After reading your article I was amazed. I know that you explain it very well. And I hope that other readers will also experience how I feel after reading your article.
    artificial intelligence course

    ReplyDelete
  51. After reading your article I was amazed. I know that you explain it very well. And I hope that other readers will also experience how I feel after reading your article.
    machine learning courses in bangalore

    ReplyDelete
  52. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.

    AWS training in Chennai

    AWS Online Training in Chennai

    AWS training in Bangalore

    AWS training in Hyderabad

    AWS training in Coimbatore

    AWS training

    ReplyDelete
  53. we are one of the best earth mover reapiring center in all over world we are one of the top rated service provider for all info visit our site
    we are one of the best earth mover reapiring center in all over world we are one of the top rated service provider for all info visit our site

    ReplyDelete
  54. Excellent article to read and very intersting to read this article and it as so many information.
    https://www.acte.in/reviews-complaints-testimonials
    https://www.acte.in/velachery-reviews
    https://www.acte.in/tambaram-reviews
    https://www.acte.in/anna-nagar-reviews
    https://www.acte.in/porur-reviews
    https://www.acte.in/omr-reviews
    https://www.acte.in/blog/acte-student-reviews

    ReplyDelete
  55. Really it is very useful for us..... the information that you have shared is really useful for everyone.Excellent information. oracle training in chennai

    ReplyDelete
  56. Just admiring your work and wondering how you managed this blog so well. It’s so remarkable that I can't afford to not go through this valuable information whenever I surf the internet.

    IELTS Coaching in chennai

    German Classes in Chennai

    GRE Coaching Classes in Chennai

    TOEFL Coaching in Chennai

    spoken english classes in chennai | Communication training



    ReplyDelete
  57. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here.
    python training in bangalore

    python training in hyderabad

    python online training

    python training

    python flask training

    python flask online training

    python training in coimbatore
    python training in chennai

    python course in chennai

    python online training in chennai

    ReplyDelete
  58. Attend The data science course in Hyderabad From ExcelR. Practical data science course in Hyderabad Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The data science course in Hyderabad. data science course in Hyderabad

    ReplyDelete

  59. Actually I read it yesterday but I had some thoughts about it and today I wanted to read it again because it is very well written.
    data science courses

    ReplyDelete

  60. A good blog always comes-up with new and exciting information and while reading I have feel that this blog is really have all those quality that qualify a blog to be a one.
    data science course in Hyderabad

    ReplyDelete
  61. Wow! Such an amazing and helpful post this is. I really really love it. I hope that you continue to do your work like this in the future also.

    Apache Spark Training in Pune
    Python Classes in Pune

    ReplyDelete
  62. We are well established IT and outsourcing firm working in the market since 2013. We are providing training to the people ,
    like- Web Design , Graphics Design , SEO, CPA Marketing & YouTube Marketing.Call us Now whatsapp: +(88) 01537587949
    : Digital Marketing Training
    Free bangla sex video:careful
    good post outsourcing institute in bangladesh

    ReplyDelete
  63. Your website is really cool and this is a great inspiring article. ExcelR Business Analytics Courses

    ReplyDelete
  64. Infycle Technologies, the best software training institute in Chennai offers the leading Python course in Chennai for tech professionals, freshers, and students at the best offers. In addition to the Python course, other in-demand courses such as Data Science, Cyber Security, Selenium, Oracle, Java, Power BI, Digital Marketing also will be trained with 100% practical classes. After the completion of training, the trainees will be sent for placement interviews in the top MNC's. Call 7504633633 to get more info and a free demo.

    ReplyDelete
  65. Become a data science professional by enrolling in AI Patasala Data Science Training in Hyderabad program, here you can learn data science concepts with practical knowledge.
    Data Science Course Training in Hyderabad

    ReplyDelete

  66. Nice blog thank you .For your Sharing It's a pleasure to read your post.It's full of information I'm looking for and I'd like to express that "The content of your post is awesome"

    Aimore Tech is the Best Software training institute in chennai with 6+ years of experience. We are offering online and classroom training.
    ASP.NET Training in Chennai
    C#.NET Training In Chennai
    hadoop training in chennai

    ReplyDelete
  67. Nice article! Thanks for sharing information on various concepts of Portal and Portlet technologies. I found this really informative.
    If you are interested in building a medical career but are struggling to clear medical entrance exams, Wisdom Academy is the right place to begin. It is one of Mumbai's best NEET coaching institutes for students preparing for medical and other competitive-level entrance examinations. The academy caters to home and group tuitions for NEET by professionals. It offers comprehensive learning resources, advanced study apparatus, doubt-clearing sessions, regular tests, mentoring, expert counseling, and much more. Equipped with highly qualified NEET Home Tutors, Wisdom Academy is one such institute that provides correct guidance that enables you to focus on your goal. Enroll Now!
    NEET Coaching in Mumbai

    ReplyDelete
  68. In todays business time people are adopting to the digital style of marketing to over power their opponents. To achieve their business goals Search Engine Marketing helps in the most effective way. To know more visit -
    Search Engine Marketing

    ReplyDelete
  69. Interesting blog with valuable information about concepts in the new technologies. Keep updating so it will inspire many people. Thanks for this work. Please read more about the Content Writing Course in Bangalore to upskill. You will better understand the power of Content Writing.
    Check it out-
    Content Writing Course in Bangalore

    ReplyDelete
  70. Such a detailed article you shared with us. Thanks for the good effort you put to write this. Keep it up. Would you like to start with Digital Marketing Courses in Delhi? Please visit our website. The courses are ready-to-implement with constantly updated curriculum, practical lessons, assignments, certification, and assistance for placement.
    Digital Marketing Courses in Delhi

    ReplyDelete
  71. Great content. I was looking for this kind of content to get some prominent points to know for web portal development. Very informative and impressive content. Thanks very much for sharing your great experience. if someone is looking for Digital Marketing Course in France then follow the link and go through to get the entire details of the course and other courses as well. you can acquire great knowledge and expertise by joining for comprehensive course content.
    Digital marketing courses in france

    ReplyDelete
  72. I'm really amazed by the concept of sharing this information on Portal and Portlet technologies. It is helpful as well. Digital marketing courses in Agra

    ReplyDelete
  73. This is by far one of the most engaging articles I have read in recent times. Just loved the quality of information provided and I must say you have noted down the points very precisely, keep posting more.Digital Marketing is now booming at a rapid pace, especially in Dubai, and many are now searching for the courses. So to ease their work I am leaving a link below for those who are searching for Digital Marketing courses in Abu Dhabi. All the best and keep learning, thank you.
    Digital Marketing Courses in Abu Dhabi

    ReplyDelete
  74. Hi, Technically informative blog. Thank you for sharing the complete details on the Portal and Portlet technologies. The formatting of the blog is done to suit freshers. Especially the diagrams make it easier to understand.
    Digital marketing courses in Ghana

    ReplyDelete
  75. I appreciate you keeping us informed, and the blog is both engaging and instructive. Furthermore, I've included a link below to make it easier for people looking for Digital marketing courses in Noida.
    Digital marketing courses in Noida

    ReplyDelete
  76. This comment has been removed by the author.

    ReplyDelete
  77. This blog is really wonderful and useful.
    very well explained .I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up

    Digital marketing courses in Cochi


    I am enrolled for the Digital Marketing Master Course provided by IIM SKILLS in the month of june 2022 .
    No prior technical skills or knowledge are required to apply. Students should be comfortable with learning in English
    The course and my faculty were supportive, weekly assessments were on time and feedbacks helped a lot to gain industry real time experiences. The classes are flexible and recordings were immediately available (if you miss the lecture).

    Students will learn web development, social media marketing, micro video marketing, affiliate marketing, Google AdWords, email marketing, SEO, and content writing.
    • You will learn about
    o SEO and how to write SEO-friendly content
    o Google ads and how to use Keyword planner
    o Short tail keywords and long-tail keywords
    o Competitive keywords
    o How to create headlines
    o How your content can get a good ranking on the web
    o Tools to track the performance of your website
    Special thanks to my mentor Vaibhav Kakkar & Roma Malhotra for their great coaching.


    ReplyDelete
  78. Good work. Such a complex topic to learn. But you was able to simplify everything for anyone to understand how to implement Ajax in Portlets. Thanks you the valuable effort you put here to share this valuable information. Keep it up. We also provide an informational and educational blog about Freelancing. Today, many people want to start a Freelance Career and they don’t know How and Where to start. People are asking about:
    What is Freelancing and How Does it work?
    How to Become a Freelancer?
    Is working as a Freelancer a good Career?
    Is there a Training for Freelancers?
    What is a Freelancer Job Salary?
    Can I live with a Self-Employed Home Loan?
    What are Freelancing jobs and where to find Freelance jobs?
    How to get Freelance projects?
    How Do companies hire Freelancers?
    In our Blog, you will find a guide with Tips and Steps which will help you to take a good decision. Start reading:
    What is Freelancing

    ReplyDelete
  79. thanks for sharing such a nice blog.I have gone through your content, I found it quite interesting and informative.
    learning for readers. Keep sharing more informative post.
    Content Writing Courses in Delhi

    ReplyDelete
  80. The article on Portal and Portlet technologies is really informational and gives a learning lesson. Keep up this good work. Digital Marketing courses in Bahamas

    ReplyDelete
  81. The topic is new to me, I must say you made it very easy to understand. I really appreciate all your efforts. Looking forward for more Content!!
    Digital marketing courses in Nashik

    ReplyDelete
  82. Hi, I really appreciate you for sharing this interesting and informative blog. if you want to know about top professional courses in india here is list please check Professional Courses

    ReplyDelete
  83. Thank you for sharing this article. I love visiting your blog because I find your content very informative. If you are looking for the best home tutors for your children in Mumbai, then you have come to the right place. Varni Home Education provides home-to-home tutors for all the standards, including all the subjects, all mediums, and all boards, giving personal attention to every children. It has a team of intellectual tutors who are proficient in their field of teaching.
    Check- home tuitions in mumbai

    ReplyDelete
  84. Great Blog. If you want to build your career in the field of Digital Marketing, Please visit-
    Digital Marketing Courses in Chandigarh

    ReplyDelete
  85. wonderful article. Very interesting to read this article. Wanna to know about digital marketing course check out this link https://iimskills.com/digital-marketing-courses-in-moradabad/

    ReplyDelete
  86. Really nice blog. Very articulately conveyed your points. thanks for sharing your knowledge.
    Digital marketing courses in Chennai

    ReplyDelete
  87. I really appreciate the hard work and effort given in producing this amazing content on Portal and Portlet technologies. Digital Marketing Courses in Faridabad

    ReplyDelete
  88. Great Article. Very well-defined AJAX call functions and return value on the user request. The article is very well defined in a very descriptive manner with code and narratives. This communication happens through ports hence before sending a request, PORT capturing is the most important activity otherwise communication error will occur. You have shared great hard work. Thanks very much for sharing your great experience and excellence. If anyone wants to build his carrier in Digital Marketing then you must go through our curriculum which is designed very professionally with cutting edge of the current requirement of the corporates and based on market trends. For more detail Please visit at
    Digital Marketing Courses in Austria

    ReplyDelete
  89. This comment has been removed by the author.

    ReplyDelete
  90. the article on Ajax Best Practice in Portlets with flow chart diagram is one of the best informatic blog that really provide anything that attracts others, but believe me the way you interact is literally awesome. Digital marketing Courses in Bhutan

    ReplyDelete
  91. This comment has been removed by the author.

    ReplyDelete
  92. The explanation of ajax implementation in portlets through diagrammatic representation and coding is very well done.
    Need more info regarding Ajax, keep sharing.
    Digital marketing courses in Raipur

    ReplyDelete
  93. This blog offers details on numerous Portal and Portlet technology concepts. Web development has been better than ever thanks to portal and portlet technologies.
    Thank you for providing such a clear and descriptive explanation of the subject.
    Data Analytics Courses In Kolkata

    ReplyDelete
  94. You’ve explained it better about ajax. Love everything you write. keep share more like this article.If someone is looking for data analytics courses in Indore then here is top 5 courses explained in this blog. Please check once for more information. Data Analytics Courses In Indore

    ReplyDelete
  95. you was able to simplify everything for anyone to understand how to implement Ajax in Portlets. Thanks you the valuable effort you put here to share this valuable information.
    Digital marketing courses in Cochi


    I am enrolled for the Digital Marketing Master Course provided by IIM SKILLS in the month of june 2022 .
    Students will learn web development, social media marketing, micro video marketing, affiliate marketing, Google AdWords, email marketing, SEO, and content writing.
    o SEO and how to write SEO-friendly content
    o Google ads and how to use Keyword planner
    o Short tail keywords and long-tail keywords
    o Competitive keywords
    o How to create headlines
    o How your content can get a good ranking on the web
    o Tools to track the performance of your website

    ReplyDelete
  96. Hi, the blog on how to implement AJAX in both JSR-168 and JSR-286 portlets is not only technical but also greatly helpful to many of the readers. The content of this blog clearly shows the time and energy given by the blogger to develop a successful content. Waiting to read more of such blogs.
    Data Analytics Courses In Kochi

    ReplyDelete
  97. you was able to simplify everything for anyone to understand how to implement Ajax in Portlets. Thanks you the valuable effort you put here to share this valuable information.
    Data Analytics Courses in Kota

    ReplyDelete
  98. This is a great post that highlights some of the best practices for using Ajax in Portlets. The blogger have included some great examples also by which this blog becomes more interesting. thanks for sharing! Digital Marketing Courses in Vancouver

    ReplyDelete
  99. What an amazing blog you have shared. If you are searching for data analytics courses in Agra, here is a list of the top five data analytics courses in Agra with practical training. Check out!
    Data Analytics Courses in Agra

    ReplyDelete
  100. This one of the best article to be read, specially for someone who wants to grow their expertise in Ajaz. What i think Ajax is a great way to improve the user experience in portlets. By using Ajax, we can asynchronously load content into a portlet without having to reload the entire page. Thanks for sharing! Data Analytics Courses in Gurgaon

    ReplyDelete
  101. Great Content , You have nicely explained the concepts of Portal and Portlet technologies. The topic is very knowledgeable and I enjoy reading it.
    Data Analytics Courses In Nagpur

    ReplyDelete
  102. Thanks for sharing this a great post on best practices for using Ajax in portlets. I definitely agree with using the resource URL approach to make sure the portlet can be used in different environments. I also like the idea of using eventing to communicate between the portlet and the portal page. Data Analytics Courses In Coimbatore

    ReplyDelete
  103. The technical ideas shared in this article on Portal and Portlet technologies is well acknowledged. I also learnt new things here which was never known. Data Analytics Courses in Delhi

    ReplyDelete
  104. Overall, this piece was extremely fascinating. I like reading this because I was looking for information of this nature. Keep writing more; I'd like to read more.
    Data Analytics Courses in Ghana

    ReplyDelete
  105. Nice learning. There is so much in your content to know more about Ajax Best Practice in Portlets. Very well written and good explained article. This will help many other learners to better understand. Keep the good work. Grab the Data Analytics Courses In Nashik and get certified. These will help you to boost your business or to enhance your career. You will know about the Best Institutes for Data Analytics Courses In Nashik. Courses Details as well as an insight into the Courses Modules, Tools covered, Courses features, Course Duration and Courses Fees. You will learn important skills and tools like Data Visualization, Statistics for Data, Excel Analytics, Python Programming, Big Data and Hadoop, Google Analytics, Basic and Advanced Excel, MySQL, Power BI, SAS, R Programming and more…
    Data Analytics Courses In Nashik

    ReplyDelete
  106. This comment has been removed by the author.

    ReplyDelete
  107. Fantastic blog. Ajax's notion is simple to understand. The reading content of the portal web applications is more extensive. The readers can easily become involved in the topic thanks to this blog. I hope you continue to share with the readers in the same way and promote valuable content as you usually do. Courses after bcom

    ReplyDelete
  108. Wonderful blog. The idea behind Ajax is easy to comprehend. The portal web applications' reading content is more extensive. Thanks to this site, readers can become involved in the subject. As a novice, I have also gained more knowledge on the topic. I hope you go on promoting practical information. Digital marketing courses in patna

    ReplyDelete
  109. Wonderful article. Thanks for the in-depth article on " Ajax Best Practice in Portals." Since it accurately directs its visitors, this blog is its best resource. In my opinion, this blog will always give its best. Your explanations are to the point; I have learned much from this blog. I am looking forward to learn. So, keep posting more. Digital marketing courses in Nagpur

    ReplyDelete
  110. Article your shared about Ajax best practice in portals is very simple to understand. Thank you so much for sharing this article Data Analytics Courses in navi Mumbai 

    ReplyDelete
  111. Ajax with portlets is an interesting read. Very detailed explanation about this topic. Data Analytics Courses In Bangalore 

    ReplyDelete
  112. Truly a great informative article for Portal and portlet web applications. Highly tech and full of valuable information. Thanks for sharing your great experience and hard work. If anyone wants to build his carrier in Digital Marketing then you must go through our curriculum which is designed very professionally with cutting edge of the current requirement of the corporates and based on market trends. For more detail Please visit at
    Digital marketing Courses In UAE

    ReplyDelete
  113. Hi Ajax, The article you have written on A dive into portal & portlet technologies, was very informative
    and the research work you have done on these technologies is very impression. It has
    really helped me to know about portal & portlet technologies. Thank you so much for the amazing
    article you have written.

    financial modeling courses in dublin </a

    ReplyDelete
  114. The best article on Ajax Best Practice in Portlets with a flowchart diagram can be found online. I truly loved reading this site because the author made it incredibly useful. I appreciate you sharing.
    Continue your wonderful work.
    Data Analytics Courses in Mumbai

    ReplyDelete
  115. Exceptionally fantastic blog. Reading this blog was really enjoyable. I appreciate the author's efforts in creating this fantastic essay. This site is one that I use to have all of my queries answered.
    Digital Marketing Courses in Australia

    ReplyDelete
  116. blog with a lot of information. This site is informative and fun to read, therefore I like it. I want to express my gratitude for the time and effort you put into making this fantastic post.
    Continue to add to your body of work. Thanks!
    financial modelling course in bangalore

    ReplyDelete
  117. Fantastic blog. Ajax's notion is simple to understand. The reading content of the portal web applications is more extensive. Readers can engage with the topic because of this website. I've learned more about the subject, even if I'm still a newbie. I hope you continue to spread useful knowledge. Thank you for the post. Financial modelling course in Singapore

    ReplyDelete
  118. I have the same thoughts similar about this type of content. I am glad I came across your blog and I'm not the only one who thinks in this way. You have really written an excellent quality article here so well. Data Analytics Courses in New Zealand

    ReplyDelete
  119. In the past few weeks, I've read a number of blogs about Portal and Portlet technologies. But I have to say that this is the finest I've found. Here, the idea is briefly and simply described to make it easier to understand.
    financial modelling course in indore

    ReplyDelete
  120. Thank you for sharing this useful and knowledgeable content on Portal and Portlet web applications. I really want to take this opportunity to thank the blogger for the efforts put in. Individuals interested in studying Financial Modeling Courses in Toronto must visit our website, which gives a gist of the curriculums of the courses, top 6 institutes providing this course, etc. Get a comprehensive picture of the course in one stop that would help you to decide your specialized stream in your own way.
    Financial modeling courses in Toronto

    ReplyDelete
  121. Hello Blogger, That is a great post. I like reading your article about Ajx. It is an interesting one.
    Data Analytics Courses in Zurich

    ReplyDelete
  122. Hello Shoukla,
    Thank for sharing this discovery. Absolutely true. There is a rapid change on the web, what make a requirements for related tools like digital marketing.
    data Analytics courses in thane

    ReplyDelete
  123. This is an wonderful post. The concept of "Ajax Best Practice in Portlets" is well explained. A detailed description of the Ajax framework is impressive. The graphical view help readers get a better understanding of the topic. The Ajax implementation is pretty simple to follow. I appreciate the effort invested in this post. Thanks for sharing this article. Do continue to post more. Data Analytics courses in Leeds

    ReplyDelete
  124. Wonderful blog. The description of "Ajax: Portal and Portlet technologies" is outstanding. The information shared is so descriptive. The explanations of the Ajax framework are easy to understand. After reading this blog, the learners will become curious and explore more about the topic. Thanks for the in-depth blog post. I appreciate the blogger's effort. Do continue to share more insightful content in the future. Data Analytics courses in Glasgow

    ReplyDelete
  125. This post is outstanding. It is properly defined what "Ajax Best Practice in Portlets" means. The description of the Ajax framework is in great depth. Readers can better understand the subject matter thanks to the graphical representation. The Ajax implementation is easy to understand. I value the time and effort put into this post. Thank you for providing this content. Keep posting more. Data Analytics Scope

    ReplyDelete
  126. Hi, your blog on AJAX and its practices in Portlet is noteworthy. The javascript functions you have mentioned are really helpful. Thank you and keep sharing such amazing stuff.
    Data Analytics Jobs

    ReplyDelete
  127. Hello Shukla,
    I just mean to thank you for your tutorial. it is a great post you have done on Ajax practice. I was glad to find it. Thanks again! Business Analytics courses in Pune

    ReplyDelete
  128. Nice article and it is an informative very helpful for the learners like me thank you for posting this article Data Analytics courses in germany .

    ReplyDelete
  129. Fantastic blog. How "Ajax: Portal and Portlet technologies" is described is excellent. The details provided are quite illustrative. The Ajax framework's explanations are straightforward. After reading this blog, the students will grow intrigued and research the subject more. Thanks for the detailed post. I admire what the author has contributed. Continue to share more insightful content. Data Analyst Course Syllabus

    ReplyDelete
  130. HI Jignesh,
    after I read your blog post, I found it informative. I think you did a great job for millions of people. Thanks for making this.
    Data Analytics Qualifications

    ReplyDelete
  131. Very interesting article. The explanation given on Ajax and its application in portlets is very informative. Thank you for sharing this.
    Data Analytics VS Data Science

    ReplyDelete
  132. Hello Shukla,
    I just want to thank you for this amazing bog post. I found inspiring to learn. I appreciate your effort in making this great article. Best Business Accounting & Taxation Course in India

    ReplyDelete
  133. This was an article I was surfing for in the internet to learn about Portal and Portlet technologies in brief explanation and I think my time was well invested. If anyone wants to learn Data Analyst Salary In India then kindly join the newly designed curriculum professional course with highly demanded skills. Data Analyst Salary In India

    ReplyDelete
  134. Hello Shukla,
    It is quite interesting to read this blog post. I especially like the practice you provided here. Thanks for all. Thank you for your kind work. As the Best SEO courses in India, kindly check here,
    Best SEO Courses in India

    ReplyDelete
  135. Hello Ajax,
    You have done a great work here. I found it really interesting to read. It is a useful tutorial for several users. Thanks for all. Best content writing courses in India are here. Best Content Writing Courses in India

    ReplyDelete
  136. There is something new I learnt through this post about various AJAX practices. Thanks for writing. Best GST Courses in India

    ReplyDelete
  137. It was very much useful for me and just because of your blog I gained so many unknown information on Portal and Portlet Technologies and the way you have clearly explained is really wonderful. Also, if anyone is interested in learning more about Best GST Courses in India, then I would like to recommend you with this article on the Best GST Courses in India – A Detailed Exposition With Live Training.

    ReplyDelete
  138. Hi, this article is full of relevant informations on ajax best practices. This is the best article that I have come across on this topic. Thanks a lot for sharing this.
    Data Analyst Interview Questions

    ReplyDelete
  139. Hello Blogger,
    This article delves into the implementation of AJAX in portlets, highlighting the differences between regular web applications and portlet-based applications. It also addresses the intricacies and challenges associated with web development in the context of portlet-based applications. Thank you for sharing your knowledge.
    Business Analytics courses in Pune

    ReplyDelete
  140. AJAX has revolutionized web development and made it possible to create more interactive and engaging user experiences.
    Data Analytics Courses In Bangalore

    ReplyDelete
  141. This article provides a comprehensive explanation of implementing AJAX in both JSR-168 and JSR-286 Portlets, highlighting the differences and best practices. It's a valuable resource for developers working with Portlet technologies.
    Is iim skills fake?

    ReplyDelete
  142. Thanks for sharing this blog that serves a helpful guide for those navigating this intricate landscape. I appreciate the clarity and relevance of your content and its really amazing.
    Data Analytics Courses In Chennai

    ReplyDelete
  143. Yours blog on ajax best practise in portlets is treasure trove of valuable insight for wed developer.
    Data Analytics courses IN UK

    ReplyDelete
  144. This comment has been removed by the author.

    ReplyDelete
  145. Ajax best practices play a crucial role in enhancing portlet functionality. Explore the synergy between data analytics and web technologies in Data Analytics courses in Glasgow for a comprehensive understanding of digital advancements. Please also read Data Analytics courses in Glasgow

    ReplyDelete
  146. This blog post is a comprehensive guide to Ajax best practices in portlets, offering valuable insights into optimizing user experience and enhancing performance
    Data analytics courses in new Jersey

    ReplyDelete
  147. This article is a goldmine of information. Thanks for the insights!"

    ReplyDelete
  148. Your blog is my go-to place for staying updated on this subject. Thanks for the great work!

    ReplyDelete
  149. The post provides valuable and detailed information on Portal and Portlet technologies thanks for sharing informative blog.
    Digital Marketing Courses in Italy

    ReplyDelete