{"json_modified": "2014-03-21T13:21:56.576084", "slug": "Mozilla/Add-ons/Performance_best_practices_in_extensions", "tags": [], "locale": "bn-BD", "title": "Performance best practices in extensions", "translations": [{"locale": "en-US", "url": "/en-US/Add-ons/Performance_best_practices_in_extensions", "last_edit": "2014-02-13T02:29:57", "title": "Performance best practices in extensions"}], "modified": "2014-03-21T13:21:56", "label": "Performance best practices in extensions", "url": "/bn-BD/docs/Mozilla/Add-ons/Performance_best_practices_in_extensions", "last_edit": "2014-02-25T01:26:55", "summary": "\u09ab\u09be\u09df\u09be\u09b0\u09ab\u0995\u09cd\u09b8\u09c7\u09b0 \u098f\u0995\u099f\u09bf \u09b8\u09ac \u099a\u09c7\u09df\u09c7 \u09ac\u09dc \u09b8\u09c1\u09ac\u09bf\u09a7\u09be \u09b9\u09b2 is its extreme extensibility. Extensions can do almost anything. There is a down side to this:\u00a0poorly written extensions can have a severe impact on the browsing experience, including on the overall performance of Firefox itself. This article offers some best practices and suggestions that can not only improve the performance and speed of your extension, but also of Firefox itself.", "sections": [{"id": "Improving_startup_performance", "title": "Improving startup performance"}, {"id": "Load_only_what_you_need.2C_when_you_need_it", "title": "Load only what you need, when you need it"}, {"id": "Use_JavaScript_code_modules", "title": "Use JavaScript code modules"}, {"id": "Defer_everything_that_you_can", "title": "Defer everything that you can"}, {"id": "General_Performance_Tips", "title": "General Performance Tips"}, {"id": "Avoid_Creating_Memory_Leaks", "title": "Avoid Creating Memory Leaks"}, {"id": "Use_JavaScript_Modules", "title": "Use JavaScript Modules"}, {"id": "Avoid_Writing_Slow_CSS", "title": "Avoid Writing Slow CSS"}, {"id": "Avoid_DOM_mutation_event_listeners", "title": "Avoid DOM mutation event listeners"}, {"id": "Lazily_load_services", "title": "Lazily load services"}, {"id": "Reduce_file_I.2FO", "title": "Reduce file I/O"}, {"id": "Use_the_right_compression_level_for_JAR_and_XPI_files", "title": "Use the right compression level for JAR and XPI files"}, {"id": "Use_asynchronous_I.2FO", "title": "Use asynchronous I/O"}, {"id": "Unnecessary_onreadystatechange_in_XHR", "title": "Unnecessary onreadystatechange in XHR"}, {"id": "Removing_Event_Listeners", "title": "Removing Event Listeners"}, {"id": "Populate_menus_as_needed", "title": "Populate menus as needed"}, {"id": "Avoid_mouse_movement_events", "title": "Avoid mouse movement events"}, {"id": "Avoid_polling", "title": "Avoid polling"}, {"id": "aPNG.2FaGIF_inappropriate_in_a_lot_of_cases", "title": "aPNG/aGIF inappropriate in a lot of cases"}, {"id": "base64.2Fmd5.2Fsha1_implementations", "title": "base64/md5/sha1 implementations"}, {"id": "Image_sprites", "title": "Image sprites"}, {"id": "Consider_using_Chrome_Workers", "title": "Consider using Chrome Workers"}, {"id": "See_also", "title": "See also"}], "id": 89311, "review_tags": []}