CodeSplitting یکی از قابلیت های فوق العاده ای است که قرار است در GWT 2 اضافه شود. برای روشن شدن دلیل اینکه چراتیم توسعه GWT تصمیم گرفته است چنین قابلیتی را به GWT اضافه کند ، ابتدا توضیحی در مورد مشکلات موجود داده می شود سپس در باره کلیات این قابلیت جدید توضیحاتی آورده می شود.
برنامه های AJAX بیشتر کارهای خود را با استفاده از جاوااسکریپت انجام می دهند و این سبب می شود که حجم کدهای جاوااسکریپت برنامه بالا رفته و تاثیر مستقیمی برروی زمان اجرای اولیه برنامه بگذارد.
اگر به خروجی کامپایلر GWT توجه کرده باشید ، این کامپایلر به ازای هر مرورگر (و زبان های که برنامه شما از آن پشتیبانی می کند) یک فایل جاوااسکریپت با قالب نام XXXXXXXXXXXXXXXXXXXXXXX.cache.html برای شما ایجاد می کند. زمانی که حجم کدهای برنامه شما کم است این فایل ها حجمی حدود 100 تا 150 کیلوبایت دارند که باید در زمانی که کاربر اولین درخواست مشاهده برنامه شما را داد برروی مرورگر کاربر بارگزاری شود. اما وقتی حجم کدهای برنامه شما افزایش می یابد حجم این فایل ها نیز زیاد می شود (در بعضی موارد حتی بیشتر از 500 کیلوبایت ) در اینصورت کاربر برای مشاهده برنامه شما باید باید مدت زمان زیادی منتظر باشد.
اگر به خروجی کامپایلر GWT توجه کرده باشید ، این کامپایلر به ازای هر مرورگر (و زبان های که برنامه شما از آن پشتیبانی می کند) یک فایل جاوااسکریپت با قالب نام XXXXXXXXXXXXXXXXXXXXXXX.cache.html برای شما ایجاد می کند. زمانی که حجم کدهای برنامه شما کم است این فایل ها حجمی حدود 100 تا 150 کیلوبایت دارند که باید در زمانی که کاربر اولین درخواست مشاهده برنامه شما را داد برروی مرورگر کاربر بارگزاری شود. اما وقتی حجم کدهای برنامه شما افزایش می یابد حجم این فایل ها نیز زیاد می شود (در بعضی موارد حتی بیشتر از 500 کیلوبایت ) در اینصورت کاربر برای مشاهده برنامه شما باید باید مدت زمان زیادی منتظر باشد.
CodeSplitting به شما این امکان را می دهد در زمان نوشتن برنامه با استفاده از دستور GWT.runAsync مکانهایی که می خواهید برنامه split شود را مشخص کنید. با این کار قسمت هایی از برنامه که با این روش مشخص کرده اید در زمان کامپایل درون یک فایل جداگانه کامپایل می شود و در زمان اجرا نیز در هنگام بارگزاری اولیه برنامه برروی مرورگر کاربر بارگزاری نمی شود بلکه در صورت نیاز بارگزاری می شود.
به مثال زیر توجه کنید:
به مثال زیر توجه کنید:
فرض کنید می خواهیم این برنامه را طوری split کنیم که کدهای فراخوانی Window.alert جداگانه کامپایل شود ، برای این کار کد بالا را بصورت کد زیر بازنویسی می کنیم:
شاد باشید.