افزون بر تکنیکهایی که کارایی و سرعت تولید محتوا را زیاد میکنند، چند تکنیک بدون هزینه نیز وجود دارند که میتوانند سبب کمشدن زمان انتظار مشتری برای بارگزاری صفحه شوند.
محتوایی که توسط php تولید و به مرورگر ارسال میشود، پیش از ارسال به مرورگر در بستههایی با حجم مشخص قرار میگیرند و اگر حجم آن زیاد نباشد، معمولا پیش از پایان اسکریپت به مرورگر فرستاده نمیشوند.
یکی از سادهترین کارهایی که برای افزایش سرعت میتوان به انجام رساند، استفاده از دستور «flush» پس از پایان تگ «head» در HTML است. دستور flush در php باعث میشود محتوای تولیدشده تا کنون فورا برای مرورگر فرستاده شود. با توجه به اینکه معمولا بخش head حاوی پیوند به فایلهای دیگر مانند فایلهای css و اسکریپتها و … است. ارسال فوری آن باعث میشود تا مرورگر دریافت این فایلها را زودتر آغاز کند و زمان انتظار برای دریافت محتوای صفحه به بهترین شکل ممکن مورد استفاده قرار گیرد.
برای پیادهسازی این تکنیک، قطعه کد زیر را درست بعد از تگ پایان «head» فراخوانی کنید
کد:
نکتهی سادهی بعدی، قرار دادن تگهای «style» در بخش «head» است ( مگر در زمانی که این کار ممکن نباشد ). این کار سبب میشود، کارایی تکنیک قبلی به بیشینهی خود برسد و علاوه بر آن، هنگامی که مرورگر خصوصیات css عناصر را از پیش بداند، محاسبات سنگین و زمانبر تعیین حالت نمایش به حداقل خود میرسد.
برخلاف تگهای Style، بهتر است تا تگهای Script را در انتهای فایل خود قرار دهید( مگر زمانی که این کار ممکن نباشد ). علت این امر خاصیت ویژهی اسکریپتها است. مطابق استانداردهای موجود، تا زمانی که یک اسکریپت بارگزاری نشود، دریافت فایلهای دیگر متوقف میماند و ادامهی دریافت و پردازش آنها وابسته به پردازش فایل اسکریپت میشود.
بهینهسازی بعدی استفاده از کمترین تعداد فایلهای خارجی است. به این معنی که تا جایی که امکان دارد، از فایلهای خارجی -مانند Styleها و Script- کمتری استفاده کنید. با یکی کردن محتوای این فایلها، تعداد درخواستهای http به حداقل میرسد و سرعت بارگزاری صفحهی شما زیادتر میشود.
از قرار دادن قالببندیهای درونخطی خودداری کنید و تمام قالببندیها را به فایلهای css منتقل کنید. اینکار علاوه بر حذف موارد تکراری، سبب کاهش حجم html اصلی و افزودهشدن قابلیت Caching به قالببندیها میشود.
امضاي کاربر :
تشکر شده:
2 کاربر از danyal_pishro به خاطر اين مطلب مفيد تشکر کرده اند:
mattin / whatyouknow /