PDA

View Full Version : سوال: مخفی كردن بخشی از صفحه و نمایش بخشی دیگر



pedram_ns
شنبه 29 اسفند 1388, 15:21 عصر
سلام.
مي خوام يك جستجو دو حالته درست كنم كه در حالت لود صفحه حالت اول ظاهر بشه و با كليك يك لينك حالت اول مخفي و دومي ظاهر بشه اين كار رو با jquery مي شه انجام داد.
آيا كسي راه بهتري بلده چون فايل جي كوري يكم سنگينه و مي خوام سايت سبكتر باشه

Peyman.Gh
شنبه 29 اسفند 1388, 15:31 عصر
از MultiView استفاده کنید.

mehdi.mousavi
یک شنبه 01 فروردین 1389, 01:25 صبح
سلام. مي خوام يك جستجو دو حالته درست كنم كه در حالت لود صفحه حالت اول ظاهر بشه و با كليك يك لينك حالت اول مخفي و دومي ظاهر بشه اين كار رو با jquery مي شه انجام داد. آيا كسي راه بهتري بلده چون فايل جي كوري يكم سنگينه و مي خوام سايت سبكتر باشه

سلام.
jQuery سنگینه؟ میشه اندکی در این مورد توضیح بدید؟ (البته تو بخش jQuery، تا همونجا هم بهتون پاسخ بدم!)

استفاده از jQuery بهترین انتخابه. درسته که بنظر دارید فایلی با حجم 24KB به پروژه اضافه می کنید (تو حالت minified و gzip شده)، اما اگر بدونید با اضافه کردن این فایل به پروژه در واقع چقدر میتونید بار از رو سرور بردارید و صفحات با حجم کمتری تولید کنید، هرگز دنبال راه کار دیگه ای نمی رفتید.

اگر می خواهید واقعا صفحه (منظورم فقط یک تک صفحه هستش، نه کل Web App) از حجم پایینتری برخوردار باشه، باید همینکاری که قراره با jQuery انجام بدید رو خودتون با JavaScript انجام بدید. در اینصورت، بله، احتمالا میتونید از اضافه کردن اون 24KB هم دوری کنید.

موفق باشید.

@Peyman.Gh: برای استفاده از MultiView باید یک round-trip بین Client و Server داشته باشیم، در صورتیکه میتونیم کل Page رو به سمت client بفرستیم (تو همون Hit اول) ، و همونجا، بین صفحات مختلف switch کنیم.

Behrouz_Rad
یک شنبه 01 فروردین 1389, 09:02 صبح
درسته که بنظر دارید فایلی با حجم 24KB به پروژه اضافه می کنید



احتمالا میتونید از اضافه کردن اون 24KB هم دوری کنید.

حجم کتابخانه ی jQuery (در حال حاضر که در نسخه ی 1.4.2 هست) در حالت minified، برابر با 70.4 کیلوبایت و Source اون 160 کیلوبایت هست.

موفق باشید.

pedram_ns
یک شنبه 01 فروردین 1389, 09:10 صبح
با تشكر.
jquery كه دارم حجمش 53 كيلو و مي خوام هر چه مي شه سايت سبكتر باشه.
يك توضيحي در مورد minified و gzip بدين كه چطور به حجم 24 كيلو مي رسيد؟

mehdi.mousavi
یک شنبه 01 فروردین 1389, 11:14 صبح
حجم کتابخانه ی jQuery (در حال حاضر که در نسخه ی 1.4.2 هست) در حالت minified، برابر با 70.4 کیلوبایت و Source اون 160 کیلوبایت هست. موفق باشید.


سلام.
من عرض کردم Minified و GZipped شده، 24.6KB هستش. در واقع سمت سرور اون 72.1KB پک میشه، سپس سمت Browser باز میشه و فقط 24.6KB روی Wire رد و بدل میشه. به Snapshot ای ضمیمه کردم و تو YSlow گرفتم، نگاه کنید...

موفق باشید.

Behrouz_Rad
یک شنبه 01 فروردین 1389, 12:52 عصر
سلام.
من عرض کردم Minified و GZipped شده، 24.6KB هستش. در واقع سمت سرور اون 72.1KB پک میشه، سپس سمت Browser باز میشه و فقط 24.6KB روی Wire رد و بدل میشه. به Snapshot ای ضمیمه کردم و تو YSlow گرفتم، نگاه کنید...

موفق باشید.
1) عبارت Minified و GZip دو عبارت کاملاً متفاوت هستند. jQuery دو نسخه داره. یکی نسخه ی minified و یکی هم که Source اون هست. GZip الگوریتم فشرده سازی هست. ساده تر بخوام بگم: Source رو فشرده می کنن و نسخه ی فشرده شده رو به الگوریتم فشرده سازی GZip میدی تا نسخه ی فشرده رو تحویل بگیری. فشرده کردن Source با فشرده کردن با GZip فرق می کنه. فشرده کردن Source شامل حذف کاراکترهای اضافه مثل CR/LF و کلاً Whitespace هست اما فشرده سازی GZip بر روی Stream عمل می کنه.
2) تصویری که گذاشتی مربوط به CDN هست. در تکمیل گفته هات باید می گفتی که حرفت در حالتی صدق می کنه که از CDN گوگل یا مایکروسافت استفاده بشه (که باید این کار رو حتماً انجام داد) یا اگر بر روی سرور خودت فایل js رو قرار میدی، حتماً الگوریتم GZip رو بر روی فایل اجرا کنی.
به تصویر ضمیمه دقت کن.

موفق باشید.

Mostafa_Dindar
یک شنبه 01 فروردین 1389, 13:17 عصر
1)
2) تصویری که گذاشتی مربوط به CDN هست. در تکمیل گفته هات باید می گفتی که حرفت در حالتی صدق می کنه که از CDN گوگل یا مایکروسافت استفاده بشه (که باید این کار رو حتماً انجام داد) یا اگر بر روی سرور خودت فایل js رو قرار میدی، حتماً الگوریتم GZip رو بر روی فایل اجرا کنی.
به تصویر ضمیمه دقت کن.


با اين حساب استفاده از CDN انتخاب بهتري (در مقايسه با استفاده از كتابخانه هاي JQuery در دامين خودمون )هست ؟ چه دلايلي ميتونه باشه كه از CDN استفاده نكنيم ؟

مرسي .

Behrouz_Rad
یک شنبه 01 فروردین 1389, 13:25 عصر
با اين حساب استفاده از CDN انتخاب بهتري (در مقايسه با استفاده از كتابخانه هاي JQuery در دامين خودمون )هست ؟ چه دلايلي ميتونه باشه كه از CDN استفاده نكنيم ؟

مرسي .
100%. همش مزیته. البته CDN ای خوبه که پایدار باشه. مثل Google و Microsoft.

mehdi.mousavi
دوشنبه 02 فروردین 1389, 01:08 صبح
1) عبارت Minified و GZip دو عبارت کاملاً متفاوت هستند.

سلام.
من مگه گفتم GZip و Minified یکی هستن؟ اصلا چه ربطی به هم دارن؟ چرا John Resig این توضیح رو نداده، اونجایی که رو سایتش نوشته "Grab the latest version, production (24KB, minified & GZipped"؟ منکه فرصت ندارم بشینم بابت هر کلمه یک کتاب بنویسم...

وقتی میگم Minified و GZipped اش 24KB هستش، دیگه خواننده باید خودش بره دنبال اینکه GZipped چی هستش و چطوری باید الگوریتم مزبور رو روی Content خودش اعمال کنه. انتظار ندارید در مورد config کردن YSlow برای محاسبه دقیق Performance Grade و محاسبه دقیق کارایی CDN ها در YSlow توضیح بدم که؟ چون این گفتگو رو میشه حالا حالا ها ادامه داد... اینا دیگه به من مربوط نمیشه، من فقط حول سوالی که پرسیده میشه، پاسخ میدم.

موفق باشید.

pedram_ns
شنبه 07 فروردین 1389, 13:11 عصر
حالا يك مشكل ديگه
همون طور كه گفتم من با jquery يك جستجو دو حالته ساختم كه در هر لحظه فقط يك حالت نمايش داده مي شه و حالت ديگه مخفي مي شه و با يك لينك مي شه بين دو حالت حركت كرد.
يكي بر اساس نام كالا و يكي بر اساس قيمت كالا سرچ مي كه كه هر دو به درستي كار ميكنن.
مشكل وقتيه كه يكي از فيلد ها رو پر كني و به جاي كليك دكمه سرچ، از اينتر استفاده كني در اين صورت در هر حالت جستجو باشي فقط به يك صفحه ارجاع مي شه ( صفحه مربوط به جستجو نام كالا) چكار كنم كه اين مشكلم حل بشه؟

mehdi.mousavi
یک شنبه 15 فروردین 1389, 23:38 عصر
حالا يك مشكل ديگه
همون طور كه گفتم من با jquery يك جستجو دو حالته ساختم كه در هر لحظه فقط يك حالت نمايش داده مي شه و حالت ديگه مخفي مي شه و با يك لينك مي شه بين دو حالت حركت كرد.
يكي بر اساس نام كالا و يكي بر اساس قيمت كالا سرچ مي كه كه هر دو به درستي كار ميكنن.
مشكل وقتيه كه يكي از فيلد ها رو پر كني و به جاي كليك دكمه سرچ، از اينتر استفاده كني در اين صورت در هر حالت جستجو باشي فقط به يك صفحه ارجاع مي شه ( صفحه مربوط به جستجو نام كالا) چكار كنم كه اين مشكلم حل بشه؟

سلام.
برای حل این مشکل می تونید کنترل کلید Enter رو توی دو tab در اختیار خودتون بگیرید. لطفا این پست (http://greatwebguy.com/programming/dom/default-html-button-submit-on-enter-with-jquery/) رو مطالعه کنید.

موفق باشید.

pedram_ns
دوشنبه 16 فروردین 1389, 21:48 عصر
خوب راستش من تازه كارم و خيلي از اين مثال چيزي نفهميدم ولي در ظاهر با فرم كلاسيك كار كرده بود من نمي تونم از فرم استفاده كنم:
<form name="" action="">
چون بايد چند فرم در صفحه بذارم كه فرم كارم به هم مي ريزه.

شما چند فيلد در نظر بگيريد كه جلو هر كدوم يك دكمه هست مي خوام با كليك روي هر فيلد دكمه همون فيلد با اينتر عمل كنه.
چطور چنين چيزي شدنيه؟

mehdi.mousavi
دوشنبه 16 فروردین 1389, 22:23 عصر
خوب راستش من تازه كارم و خيلي از اين مثال چيزي نفهميدم ولي در ظاهر با فرم كلاسيك كار كرده بود من نمي تونم از فرم استفاده كنم:
<form name="" action=""> چون بايد چند فرم در صفحه بذارم كه فرم كارم به هم مي ريزه. شما چند فيلد در نظر بگيريد كه جلو هر كدوم يك دكمه هست مي خوام با كليك روي هر فيلد دكمه همون فيلد با اينتر عمل كنه. چطور چنين چيزي شدنيه؟

وقتی شما یک صفحه ASPX می سازید، کل محتوای صفحه در یک form قرار می گیره. اصلا ولش کنید. نظرم تغییر کرد... روش دیگه ای به ذهنم رسید (چون پیاده سازی روشی که گفتم، اگر تازه کار هستید، براتون مشکله).

این روش رو امتحان کنید: شما بخشهای متفاوت فرم رو در Panel های متفاوت قرار بدید. هر Panel میتونه حاوی یک خصیصه DefaultButton باشه که یک رشته هستش. داخل این رشته، نام Button ای که در اون Panel خاص باید بعنوان DefaultButton تعیین بشه، بنویسید.

بدین ترتیب، اگر Enter رو توی Panel اول بزنید، DefaultButton ای که برای Panel اول Set کرده اید، فراخوانی میشه. روی Panel دوم بزنید، DefaultButton مربوطه به Panel دوم و الی آخر.

موفق باشید.