Tuesday, November 4, 2014

Lazy loading directives in AngularJS the easy way


The past few months I've been doing a lot of work with AngularJS, and currently I'm working on a single page application which is supposed to be quite big in the end. Since I have the privilege of building it from scratch, I'm taking many client-side performance considerations in mind now, which I think will save me a lot of hard work optimizing in the future.

One of the problems main problems is HUGE amounts of js files being downloaded to the user's computer. A great way to avoid this is to only download the minimum the user needs and dynamically load more resources in the background, or as the user runs into pages which require a specific feature.

AngularJS is a great framework, but doesn't have anything built in that deals with this, so I did some research myself...
I ran into some great articles on the subject, which really helped me a lot (and I took some ideas from), but weren't perfect.
A great article on the subject is this one : http://www.bennadel.com/blog/2554-loading-angularjs-components-with-requirejs-after-application-bootstrap.htm
The important part is that it explains how to dynamically load angularjs directives (or other components) after bootstrapping your angularjs app.
What I didn't like about this article is that the writer's example requires RequireJS and jQuery along with all the AngularJS files you already have. This alone will make your app really heavy, and I think doesn't need to be like this.

Let me show you how I wrote a simple AngularJS service that can dynamically load directives.

The first crucial step is that you need to save a reference to $compileProvider. This is a provider that is available to us when bootstrapping, but not later, and this provider will compile our directive for us.
var app = angular.module('MyApp', ['ngRoute', 'ngCookies']);

app.config(['$routeProvider', '$compileProvider', function($routeProvider, $compileProvider) {
    $routeProvider.when('/', {
        templateUrl: 'views/Home.html',
        controller: 'HomeController'
    });

    app.compileProvider = $compileProvider;
}]);


Now, we can write a service that will load our javascript file on demand, and compile the directive for us, to be ready to use.
This is a simplified version of what it should look like :
app.service('LazyDirectiveLoader', ['$rootScope', '$q', '$compile', function($rootScope, $q, $compile) {
    
    // This is a dictionary that holds which directives are stored in which files,
    // so we know which file we need to download for the user
    var _directivesFileMap = {
        'SexyDirective': 'scripts/directives/sexy-directive.js'
    };

    var _load = function(directiveName) {
        // make sure the directive exists in the dictionary
        if (_directivesFileMap.hasOwnProperty(directiveName)) {
            console.log('Error: doesnt recognize directive : ' + directiveName);
            return;
        }

        var deferred = $q.defer();
        var directiveFile = _directivesFileMap[directiveName];

        // download the javascript file
        var script = document.createElement('script');
        script.src = directiveFile;
        script.onload = function() {
            $rootScope.$apply(deferred.resolve);
        };
        document.getElementsByTagName('head')[0].appendChild(script);

        return deferred.promise;
    };

    return {
        load: _load
    };

}]);


Now we are ready to load a directive, compile it and add it to our app so it is ready for use.
To use this service we will simply call it from a controller, or any other service/directive like this:
app.controller('CoolController', ['LazyDirectiveLoader', function(LazyDirectiveLoader) {
    
    // lets say we want to load our 'SexyDirective' all we need to do is this :
    LazyDirectiveLoader.load('SexyDirective').then(function() {
        // now the directive is ready...
        // we can redirect the user to a page that uses it!
        // or dynamically add the directive to the current page!
    });

}]);


One last thing to notice, is that now your directives need to be defined using '$compileProvider', and not how we would do it regularly. This is why we exposed $compileProvider on our 'app' object, for later use. So our directive js file should look like this:
app.compileProvider.directive('SexyDirective', function() {
    return {
        restrict: 'E',
        template: '<div class=\"sexy\"></div>',
        link: function(scope, element, attrs) {
            // ...
        }
    };
});


I wrote earlier that this is a simplified version of what it should look like, since there are some changes that I would make before using it as is.
First I would probably add some better error handling to look out for edge cases.
Second, We wouldn't want the same pages to attempt to download the same files several times, so I would probably add a cache mechanism for loaded directives.
Also, I wouldn't want the list of directive files (the variable _directivesFileMap) directly in my LazyDirectiveLoader service, so I would probably create a service that holds this list and inject it the service. The service that holds the list will be generated by my build system (in my case I created a gulp task to do this). This way I don't need to make sure this file map is always updated.
Finally, I think I will take out the part that loads the javascript file to a separate service so I will be able to easily mock it in tests I write. I don't like touching the DOM in my services, and if I have to, I rather separate it to a separate service I can easily mock.

I uploaded a slightly better (and a little less simplified) version of this over here : https://github.com/gillyb/angularjs-helpers/tree/master/directives/lazy-load

452 comments:

  1. This comment has been removed by a blog administrator.

    ReplyDelete
  2. If the user will use Cloud computing virtual data room solutions , it will not have a problem with HUGE amounts of js files being downloaded to the user's computer

    ReplyDelete
  3. Thanks for sharing this informative content that guided me to know the details about the training offered in different technology.Best Angularjs Training in Chennai
    AngularJS Training in Chennai

    ReplyDelete
  4. Attractive blog post! I should read from some useful news for this blog section, It 's a great content Keep it useful sharing.
    angularjs training in chennai , best angularjs training course in chennai | selenium training in chennai |best selenium course in chennai

    ReplyDelete
  5. Here you Can Download Stock Note 4 Firmware Free With Full Speed

    sm-n910f firmware

    ReplyDelete
  6. Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website
    dotnet training in bangalore

    ReplyDelete
  7. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details.
    hadoop-training-in-bangalore

    ReplyDelete
  8. Thanks for a your wonderful article with working examples code.

    - Divya,
    Trainer,
    Best Angular Training Center

    ReplyDelete
  9. Interesting post! This is really helpful for me. I like it! Thanks for sharing..
    MCA Project Center in Chennai | MCA Project Center in Velachery

    ReplyDelete
  10. Really an amazing post by reading your post i gained more information.Java Project Center in Chennai | Java Project Center in Velachery

    ReplyDelete
  11. I simply wanted to thank you so much again. I am not sure the things that I might have gone through without the type of hints revealed by you regarding that situation.
    Authorized Dot Net training in chennai
    Advance Digital Marketing Training in chennai– 100% Job Guarantee

    ReplyDelete
  12. Great article for know about the technology. Thanks for sharing this useful information.
    AngularJS Training Chennai | AngularJS Courses in Chennai | Angular Training in Chennai

    ReplyDelete
  13. Awesome article.The information I have been searching precisely. It helped me a lot, thanks. Keep coming with more such informative article. Would love to follow them.
    sap abap online training in usa

    ReplyDelete
  14. Thanks for sharing the information, Salesforce experts a lot of openings in multi-level companies, for more information n
    Salesforce Training
    Salesforce certification Training program
    Salesforce Training online in India

    ReplyDelete
  15. The blog you presented was very nice and interesting which helped me to get update on the recent technologies.angularjs training in chennai

    devops training in chennai

    ReplyDelete
  16. You’ve written a really great article here. Your writing style makes this material easy to understand.. I agree with some of the many points you have made. Thank you for this is real thought-provoking content
    python training in chennai | python training in bangalore

    python online training | python training in pune

    python training in chennai | python training in bangalore

    python training in tambaram |

    ReplyDelete
  17. Useful information.I am actual blessed to read this article.thanks for giving us this advantageous information.I acknowledge this post.and I would like bookmark this post.Thanks

    java training in omr

    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

    ReplyDelete
  18. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

    Digital Marketing Course in Chennai
    Digital Marketing Training in Chennai
    Online Digital Marketing Training
    SEO Training in Chennai
    Digital Marketing Course
    Digital Marketing Training
    Digital Marketing Courses

    ReplyDelete
  19. A very good blog
    https://litementors.in/courses/digital-marketing-training-in-chennai/

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

    ReplyDelete
  21. I appreciate that you produced this wonderful article to help us get more knowledge about this topic. I know, it is not an easy task to write such a big article in one day, I've tried that and I've failed. But, here you are, trying the big task and finishing it off and getting good comments and ratings. That is one hell of a job done!
    Python training in marathahalli
    Python training in pune
    AWS Training in chennai

    ReplyDelete
  22. Great post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well.
    DevOps online Training

    ReplyDelete
  23. This is a terrific article, and that I would really like additional info if you have got any. I’m fascinated with this subject and your post has been one among the simplest I actually have read.

    angularjs Training in chennai
    angularjs Training in chennai

    angularjs-Training in tambaram

    angularjs-Training in sholinganallur

    angularjs-Training in velachery

    ReplyDelete
  24. Existing without the answers to the difficulties you’ve sorted out through this guide is a critical case, as well as the kind which could have badly affected my entire career if I had not discovered your website.
    safety course in chennai

    ReplyDelete
  25. Really I Appreciate The Effort You Made To Share The Knowledge. This Is Really A Great Stuff For Sharing. Keep It Up . Thanks For Sharing.

    Angular Training in Chennai
    Angular JS Training in Chennai

    ReplyDelete
  26. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.thank you for sharing such a great blog with us. expecting for your.
    ccna Training center in Chennai
    Best CCNA Training Institute in Chennai
    ccna certification in Chennai
    ccna course in Chennai
    German Language Course in Chennai
    German Courses in Chennai

    ReplyDelete
  27. Very interesting content which helps me to get the indepth knowledge about the technology. To know more details about the course visit this website.
    Qtp training in Chennai
    Big Data Training in Chennai
    Hadoop Training in Chennai
    Digital Marketing Training in Chennai
    JAVA Training in Chennai
    Java classes in chennai

    ReplyDelete
  28. It is an excellent post! Truly very worthy concept and really thanks for this posting such a wonderful blog. Share more info like this.
    Ethical Hacking Course
    Ethical Hacking Certification
    Hacking Course
    Learn Ethical Hacking

    ReplyDelete
  29. I have gone through your blog, it was very much useful for me and because of your blog, and also I gained many unknown information, the way you have clearly explained is really fantastic. Kindly post more like this, Thank You.
    Aviation Academy in Chennai
    Aviation Courses in Chennai
    best aviation academy in chennai
    aviation institute in chennai

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

    ReplyDelete
  31. im really proud to read a resonable article.in recent days i search a this much of article finally i found it.thanks.
    AngularJS Training institute in Chennai
    Angular 6 Training in Chennai
    Angular 5 Training in Chennai

    ReplyDelete
  32. I have to voice my passion for your kindness giving support to those people that should have guidance on this important matter.
    safety course in chennai

    ReplyDelete
  33. Try your luck and get a lot of money on the online casino site BGAOC. live slot strategy Win more than ever with us.

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

    ReplyDelete
  35. its very nice to read your article and im really appreciate to read that.thanks to you for giving wonderfull ideas.thankyou.
    UiPath Training Institutes in Chennai
    Blue Prism Training in Anna Nagar
    Blue Prism Training in T Nagar

    ReplyDelete
  36. Качественный декоративный алюминиевый led профиль я обычно беру в компании Ekodio, советую.

    ReplyDelete
  37. Thanks For Sharing The Information Please Keep Updating us Information Shared Is Very Valuable Time Just Went On Reading The Article Python Online Training AWS Online Training Data Science Online Training Data Science Online Training Hadoop Online Training

    ReplyDelete
  38. Thank you for allowing me to read it, welcome to the next in a recent article. And thanks for sharing the nice article, keep posting or updating news article.

    Microsoft Azure online training
    Selenium online training
    Java online training
    Java Script online training
    Share Point online training


    ReplyDelete
  39. Webtrackker is one only IT company who will provide you best class training with real time working on marketing from last 4 to 8 Years Experience Employee.Thanks for sharing.Best vacation course Training in and vacation course for Students in Kanchipuram|

    ReplyDelete
  40. Attend The Python training in bangalore From ExcelR. Practical Python training in bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Python training in bangalore.
    python training in bangalore

    ReplyDelete
  41. Wonderful article.It is to define the concepts very well.Clearly explain the information.It has more valuable information for encourage me to achieve my career goal.
    Best dally erp 9 Training Institute in in Kanchipuram

    ReplyDelete
  42. Wow, really I am much interested to know our blog content is really good.Great information. Thank you for Sharing.
    Best C++ Training Institute in Kanchipuram

    ReplyDelete
  43. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site
    Best dotnet Training Institute in Kanchipuram

    ReplyDelete
  44. Home Mart is a site about Home Improvement, Furniture, Home Appliances and many more.
    Check out the best
    Dog Cages
    bedroom furniture nz
    entertainment unit
    shoe rack

    ReplyDelete
  45. Wonderful article.It is to define the concepts very well.Clearly explain the information.It has more valuable information for encourage me to achieve my career goal.
    Best CCNP Training Institute in Kanchipuram

    ReplyDelete
  46. thank you for such a great article with us. hope it will be much useful for us. please keep on updating..
    Best software testing Training Institute in Kanchipuram

    ReplyDelete
  47. Thanks for sharing such a great information..Its really nice and informative.Great article, thanks for posting...
    Best software testing Training Institute in Kanchipuram

    ReplyDelete
  48. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us.
    Best dally erp 9 Training Institute in Kanchipuram

    ReplyDelete
  49. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing…..No:1 Python Programming Training Institute in Kanchipuram

    ReplyDelete
  50. Thanks for taking your own time to discuss this topic, I feel happy about that curiosity has increased to learn more about this topic. Keep sharing your information regularly for my future reference.….. .…..Best LINUX Training Institute in Kanchipuram

    ReplyDelete
  51. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details.
    Best C++ Training Training Institute in Kanchipuram

    ReplyDelete
  52. You created an Impressive blog with lovely information.You made a really very useful article..Thanks for sharing such a wonderful blog...
    Best C++ Training Training Institute in Kanchipuram

    ReplyDelete
  53. very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing…..…..No:1 Python Programming Training Academy in Kanchipuram

    ReplyDelete
  54. Awesome Post! I like writing style, the way you described the topics throughout the post. I hope many web reader will keep reading your post at the end, Thanks for sharing your view.No:1 Web Designing Training Academy in Kanchipuram

    ReplyDelete
  55. I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the details.
    Best web designing Training Institute in Kanchipuram

    ReplyDelete
  56. very nice blogs!!! i have to learning for lot of information for this sites...Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.No:1 Python Programming Training Academy in Kanchipuram

    ReplyDelete
  57. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us..Best Selenium Training Academy in Kanchipuram

    ReplyDelete
  58. Wonderful!! this is really one of the most beneficial blogs I’ve ever browsed on this subject. I am very glad to read such a great blog and thank you for sharing this good info with us.Keep posting stuff like this.Best AWS Training Academy in Kanchipuram

    ReplyDelete
  59. Wonderful article.It is to define the concepts very well.Clearly explain the information.It has more valuable information for encourage me to achieve my career goal.
    Best JAVA and J2EE Training Institute in Kanchipuram

    ReplyDelete
  60. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing…No:1 Python Programming Training Academy in Kanchipuram

    ReplyDelete
  61. Awesome Post! I like writing style, the way you described the topics throughout the post. I hope many web reader will keep reading your post at the end, Thanks for sharing your view.…No:1 Selenium Training Academy in Kanchipuram

    ReplyDelete
  62. Great information, I like this kind of blog information really very nice and more I can easily new skills are develop after reading that post..…No:1 AWS Training Academy in Kanchipuram

    ReplyDelete
  63. Wonderful blog… You provided very interesting information here. I feel happy to read this post. I hope that you will write many posts like this… Thanks for sharing and Keep updating…..No:1 Software Testing Training Academy in Kanchipuram

    ReplyDelete
  64. Wonderful!! this is really one of the most beneficial blogs I’ve ever browsed on this subject. I am very glad to read such a great blog and thank you for sharing this good info with us.Keep posting stuff like this..…..Best VMware Training Academy in Kanchipuram

    ReplyDelete
  65. Hi, I am really happy to find such a helpful and fascinating post that is written in well manner. Thanks for sharing such an informative post.
    Best Web Designing and Development TrainingTraining Institute in kanchipuram|

    ReplyDelete
  66. very nice blogs!!! I have to learning for lot of information for this sites...Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing…..Best Selenium Training Academy in Kanchipuram

    ReplyDelete
  67. This is really too useful and have more ideas from yours. keep sharing many things and thanks for sharing the information....Best Blue prism Training Academy in Kanchipuram

    ReplyDelete
  68. Nice and good blog.. it is very useful for me to learn and understand easily.. thanks for sharing your valuable information and time.. please keep updating.
    Best tally erp9 Course Training Institute in kanchipuram|

    ReplyDelete
  69. Really i enjoyed very much. And this may helpful for lot of peoples. So you are provided such a nice and great article within this..No:1 Blue Prism Training Academy in Kanchipuram

    ReplyDelete
  70. It's interesting that many of the bloggers to helped clarify a few things for me as well as giving. Most of ideas can be nice content. The people to give them a good shake to get your point and across the command...Best AWS Training Academy in Kanchipuram

    ReplyDelete
  71. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing…...Best Selenium Training Academy in Kanchipuram

    ReplyDelete
  72. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing……...Best JAVA Training Academy in Kanchipuram

    ReplyDelete
  73. This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.Regards, .No:1 Selenium Automation Training Academy in Kanchipuram

    ReplyDelete
  74. Useful information and kindly keep update such a nice blog. Thanks for sharing...
    Best tally erp 9 Course Training Institute in kanchipuram|

    ReplyDelete
  75. Nice post. Great information and really very much useful. Thanks for sharing and keep updating...No:1 ISTQB Certification Institute in Kanchipuram

    ReplyDelete
  76. This blog is informative.It helps me to gain good knowledge.It helps to understand the concept easily. please update this kind of information.Leading Python Training Institute in Kanchipuram

    ReplyDelete
  77. Nice blog.Your blog is really useful for me. Thanks for sharing this informative blog.
    Best Graphic Designing Course Training Institute in kanchipuram|

    ReplyDelete
  78. I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.. Leading Web Designing Training Institute in Kanchipuram

    ReplyDelete
  79. This post was quite awesome and interesting to read. Congrats for your work. Thanks a lot for providing this with us. Keep on updating this with us regularly:
    Best Selenium Automation Course Training Institute in kanchipuram|

    ReplyDelete
  80. Thank you for taking the time to provide us with your valuable information. We strive to provide our candidates with excellent care and we take your comments to heart.As always, we appreciate your confidence and trust in us.. Leading Python Training Academy in Kanchipuram

    ReplyDelete
  81. Wonderful!! this is really one of the most beneficial blogs I’ve ever browsed on this subject. I am very glad to read such a great blog and thank you for sharing this good info with us.Keep posting stuff like this.. No:1 Web Designing and Development Training Academy in Kanchipuram

    ReplyDelete
  82. Nice and good blog. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating...
    Best Web Technologies Course Training Institute in kanchipuram|

    ReplyDelete
  83. Excellant post!!!. The strategy you have posted on this technology helped me to get into the next level and had lot of information in it..No:1 Cloud Computing Training Academy in Kanchipuram

    ReplyDelete
  84. There was very wonderful information and that's great one. I really appreciate the kind words, thanks for sharing that valuable information.
    Best C++ Course Training Institute in kanchipuram|

    ReplyDelete
  85. Thanks for your informative article. Your post helped me a lot in understanding the career prospects in search engine optimization..No:1 JAVA J2EE Training Academy in Kanchipuram

    ReplyDelete
  86. Great post! I am actually getting ready to across this information, It’s very helpful for this blog.Also great with all of the valuable information you have Keep up the good work you are doing well..No:1 Python Programming Training Academy in Kanchipuram

    ReplyDelete
  87. Nice and good blog. It is very useful for me to learn and understand easily. Thanks for sharing your valuable information and time. Please keep updating....No:1 Selenium Automation Training Academy in Kanchipuram

    ReplyDelete
  88. Great information, I like this kind of blog information really very nice and more I can easily new skills are develop after reading that post..….No:1 Python Training Academy in Kanchipuram

    ReplyDelete
  89. The information you have here is really useful to make my knowledge good. It is truly supportive for us and I have accumulated some essential data from this blog.
    Best JAVA and J2EE Course Training Institute in kanchipuram|

    ReplyDelete
  90. I Got Job in my dream company with decent 12 Lacks Per Annum salary, I have learned this world most demanding course out there in the current IT Market from the big data training in bangaloreProviders who helped me a lot to achieve my dreams comes true. Really worth trying Freelance seo expert in bangalore

    ReplyDelete
  91. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.thank you for sharing such a great blog with us. expecting for your.….No:1 Linux Training Academy in Kanchipuram

    ReplyDelete
  92. Great blog.you put Good stuff.All the topics were explained briefly.so quickly understand for me.I am waiting for your next fantastic blog.Thanks for sharing.
    Best Tally erp9 Course Training Institute in kanchipuram|

    ReplyDelete
  93. very nice blogs!!! I have to learning for lot of information for this sites...Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.No:1 LINUX Training Academy in Kanchipuram

    ReplyDelete
  94. great doing. and i happy to visit your blog to know about this wonderful information. thanks for sharing. keep updating.
    Best Best Web Designing and Development Course Training Institute in kanchipuram|

    ReplyDelete
  95. Great blog.you put Good stuff.All the topics were explained briefly.so quickly understand for me.I am waiting for your next fantastic blog.Thanks for sharing..No:1 CCNA Training Academy in Kanchipuram

    ReplyDelete
  96. 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..
    Best Python Course Training Institute in kanchipuram|

    ReplyDelete
  97. Very impressive and informative blog.. thanks for sharing your valuable information.. it is very useful and easy to learn as well... keep rocking and updating... looking further..
    Best Tally Erp9.0 Course Training Institute in kanchipuram|

    ReplyDelete
  98. Thanks for sharing such a great information..Its really nice and informative.Great article, thanks for posting....No:1 JAVA Training Academy in Kanchipuram

    ReplyDelete
  99. Quite Interesting post!!! Thanks for posting such a useful post. I wish to read your upcoming post to enhance my skill set, keep blogging.
    Best Web Technologies Course Training Institute in kanchipuram|

    ReplyDelete
  100. This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
    Best Linux Certification Course Training Institute in kanchipuram|

    ReplyDelete
  101. Wow!! What a interesting blog..Thanks The information which you provided is very much useful and easy to learn as well...keep rocking and updating... looking further......No:1 AWS Training Academy in Kanchipuram

    ReplyDelete
  102. Nice post... Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating......No:1 CCNP Training Academy in Kanchipuram

    ReplyDelete
  103. Nice Post! It is really interesting to read from the beginning & I would like to share your blog to my circles, keep your blog as updated.
    Best Tally ERP 9 Course Training Institute in kanchipuram|

    ReplyDelete
  104. Interesting post! This is really helpful for me. I like it! Thanks for sharing!
    Best Graphic Designing Course Training Institute in kanchipuram|

    ReplyDelete
  105. This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me
    Best PCB Training Course Training Institute in kanchipuram|

    ReplyDelete
  106. This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…no:1
    HP QTP / UFT Automation training institute in kanchipuram.

    ReplyDelete
  107. Interesting post! This is really helpful for me. I like it! Thanks for sharing!
    Best CCNA Course Training Institute in kanchipuram|

    ReplyDelete
  108. Attend The PMP in Bangalore From ExcelR. Practical PMP in Bangalore Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The PMP in Bangalore.
    ExcelR PMP in Bangalore

    ReplyDelete
  109. Interesting post! This is really helpful for me. I like it! Thanks for sharing!
    Best Tally erp9 Course Training Institute in kanchipuram|

    ReplyDelete
  110. Your post explain everything in detail and it was very interesting to read. Thank you sharing.
    Best Tally Erp9 Course Training Institute in kanchipuram|

    ReplyDelete
  111. I am read your post was very interesting good valid information
    keep sharing more information...
    Best Tally Erp9 Course Training Institute in kanchipuram|

    ReplyDelete
  112. Pretty article! I found some useful information in your blog, it was awesome to read, thanks for sharing this great content to my vision, keep sharing.
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  113. This is excellent information. It is amazing and wonderful to visit your site.Thanks for sharing this information, this is useful to me…
    Best Tally Erp9 Course Training Institute in kanchipuram|

    ReplyDelete
  114. Quite Interesting post!!! Thanks for posting such a useful post. I wish to read your upcoming post to enhance my skill set, keep blogging.
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  115. I have read your Blog..Its really helpful to us...
    keep updating such a wonderful article..
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  116. I have read your Blog..Its really helpful to us...
    keep updating such a wonderful article..
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  117. Nice post.. Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating...
    Best C & C++ Course Training Institute in kanchipuram|

    ReplyDelete
  118. Really it was an awesome information...very interesting to read..You have provided an nice blog....Thanks for sharing..
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  119. very nice blogs!!! I have to learning for lot of information for this sites...Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing...
    No:1 Tally Training Academy in kanchipuram

    ReplyDelete
  120. Thanks for sharing in this blog...its very useful for us...keep on going...
    Best MS Office Course Training Institute in kanchipuram|

    ReplyDelete
  121. Nice blog. Thank you for sharing. The information you shared is very effective for learners I have got some important suggestions from it.
    Best PCB (Printed Circuit Board) Course Training Institute in kanchipuram|

    ReplyDelete
  122. What a fantastic information from your blog...Always keep sharing..…
    Best Best Dotnet Training Institute in Kanchipuram

    ReplyDelete
  123. very nice blogs!!! I have to learning for lot of information for this sites...Sharing for wonderful information. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing.…
    No:1 Web Designing and Training Institute in Kanchipuram

    ReplyDelete
  124. Great blog.you put Good stuff.All the topics were explained briefly.so quickly understand for me.I am waiting for your next fantastic blog.Thanks for sharing..…
    No:1 VMware Training Institute in Kanchipuram

    ReplyDelete
  125. Wonderful post. Thanks for taking time to share this information with us.
    No:1
    RPA Training Academy in kanchipuram

    ReplyDelete
  126. Its really an Excellent post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog. Thanks for sharing…
    No:1 LINUX Training Institute in Kanchipuram

    ReplyDelete
  127. I am reading your post from the beginning, it was so interesting to read & I feel thanks to you for posting such a good blog, keep updates regularly.
    Best Cloud Computing Course Training Institute in kanchipuram|

    ReplyDelete
  128. Wow! I've been searching for this for a while. Glad that you posted it. This will be really helpful. I'm taking reference from here. Keep us updated with more such posts.
    No:1
    IOS Training Academy in kanchipuram

    ReplyDelete
  129. Nice..You have clearly explained about the conept..Its very useful for me to
    undertand..Keep on sharing..

    No:1 CCNA Training Academy in Kanchipuram







    ReplyDelete
  130. 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…No:1 Linux Training Institute in Kanchipuram

    ReplyDelete
  131. Thanks a lot for offering this unique post with us. I really enjoyed by reading your blog post.keep sharing.
    Best Python Course Training Institute in kanchipuram|

    ReplyDelete
  132. This is really awesome. Full of knowledge and latest information.Thanks for sharing.
    Best JAVA / J2EE / J2ME Course Training Institute in kanchipuram|

    ReplyDelete
  133. This is really too useful and have more ideas from yours. Keep sharing many techniques and thanks for sharing the information.
    No:1
    BCA Project Center in kanchipuram

    ReplyDelete
  134. The provided information’s are very useful to me.Thanks for sharing.Keep updating your blog.

    No:1 Networking project Centre in kanchipuram

    ReplyDelete
  135. very usefull informatation.and iam expecting more posts like this please keep updating us....
    No:1 Best Android Project Center in kanchipuram|

    ReplyDelete
  136. Nice blog.. Thanks for sharing informative blog.. its very useful to me.......No:1 Final Year Project Center in Kanchipuram

    ReplyDelete
  137. It’s interesting that many of the bloggers to helped clarify a few things for me as Well as giving. Most of ideas can be nice content.…...No:1 Final Year Project Center in Kanchipuram

    ReplyDelete
  138. After I see your blog it was so impressive and informative content. thanks for sharing such a lovely blog.
    No:1 Best Software Testing Training Center in kanchipuram|

    ReplyDelete
  139. It is really a great and useful piece of information. I am glad that you shared this helpful info with us. Please keep us up to date like this. Thank you for sharing.
    Basic Computer Course in kanchipuram

    ReplyDelete
  140. This was a worthy blog. I enjoyed reading this blog and got an idea about it. Keep sharing more like this.
    No:1 Best Selenium Automation Training Center in kanchipuram|

    ReplyDelete
  141. Great post and informative blog.it was awesome to read, thanks for sharing this great content to my vision..No:1 Tally Training Center in Kanchipuram

    ReplyDelete
  142. Excellent information with unique content and it is very useful to know about the information based on blogs.....No:1 Embedded Systems Training Center in Kanchipuram

    ReplyDelete
  143. Wow it is really wonderful and awesome thus it is very much useful for me to understand many information and helped me a lot. it is really explainable very well and i got more information from your blog.
    No:1 Best Tally Training Center in kanchipuram|

    ReplyDelete

  144. Nice post... Really you are done a wonderful job. Thanks for sharing such wonderful information with us. Please keep on updating...No:1 CCNA Exam Center in Chennai|

    ReplyDelete
  145. I have read your post, it was good to read & I am getting some useful info's through your blog keep sharing.......Best Ethical Hacking Training Center in Kanchipuram

    ReplyDelete
  146. This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.
    Regards,....Best Robotics Project Center in Chennai

    ReplyDelete
  147. DevOps Training in Chennai
    I am glad that I have visited this blog. Really helpful, eagerly waiting for more updates.

    ReplyDelete
  148. Nice blog with excellent information. Thank you, keep sharing....
    Regards,....Best Dotnet Project Center in Kanchipuram

    ReplyDelete
  149. This blog is informative.It helps me to gain good knowledge.It helps to understand the concept easily. please update this kind of information…No: 1 IT Project Center in Chennai|

    ReplyDelete
  150. The information you shared is very effective for learners. I learnt this technology very well with the help of this article.Thanks for this useful information.Keep updating.
    Basic Computer Course in kanchipuram

    ReplyDelete
  151. hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog.No: 1 Final Year Project Center in Chennai|

    ReplyDelete
  152. Good one, it is very useful for me to learn and understand, thanks for sharing your information and ideas.. keep rocks..No: 1 AWS Exam Center in Chennai|

    ReplyDelete

  153. I am really happy with your blog because your blog is very unique and powerful for new reader.No: 1 Microsoft Exam Center in Chennai|

    ReplyDelete
  154. It's interesting that many of the bloggers to helped clarify a few things for me as well as giving. Most of ideas can be nice content....
    Regards,....<a href="https://www.alltechzsolutions.in/webdesign-training-in-chennai.php>No:1 PHP Project Center in Chennai</a>

    ReplyDelete

  155. I am reading your post from the beginning, it was so interesting to read & I feel thanks to you for posting such a good blog, keep updates regularly. 
No: 1 AZURE Exam Center in Chennai|

    ReplyDelete
  156. It is really a great and useful piece of information. I am glad that you shared this helpful info

    with us. Please keep us up to date like this. Thank you for sharing.
    ISTQB

    Exam Center in Chennai

    ReplyDelete
  157. This information is impressive..I am inspired with your

    post writing style & how continuously you describe this

    topic. After reading your post, thanks for taking the time

    to discuss this, I feel happy about it and I love learning

    more about this topic
    AWS Certification in Chennai

    ReplyDelete

  158. I have read your blog its very attractive and impressive. I like it your blog.No: 1 Python Certification in Chennai|

    ReplyDelete
  159. Thanks for posting this useful content, Good to know about new things here, Keep updating your blog...No: 1 Blue Prium Certification in Chennai|

    ReplyDelete
  160. Nice blog. Thank you for sharing. The information you shared is very effective for learners I have got some important suggestions from it…
    Android Project Center in Chennai

    ReplyDelete
  161. Hello , Really awesome blog. Your blog is really useful for me. Thanks for sharing this informative blog. Keep updating your blog.No: 1 JAVA Application Center in Chennai|

    ReplyDelete
  162. Great and useful article.Thanks for taking time to share

    this post
    Android Project Center in

    Chennai

    ReplyDelete
  163. Nice blog. Thank you for sharing. The information you shared is very effective for learners I have got some important suggestions from it.No: 1 JAVA Application Center in Chennai|

    ReplyDelete
  164. These provided information was really so nice,thanks for giving that post and the more skills to develop after refer that post. Your bolg really impressed for me,because of all information so nice.No: 1 NS 2 Project Center in Chennai|

    ReplyDelete
  165. Quite Interesting post!!! Thanks for posting such a useful post. I wish to read your upcoming post to enhance my skill set, keep blogging.No: 1 BBA Project Center in Chennai|

    ReplyDelete