PDA

View Full Version : سوال: تغییر قسمتی از فایل js در صفحات برنامه



mehdin69
یک شنبه 03 اردیبهشت 1391, 21:28 عصر
سلام من 5 خط دستور اسکریت دارم که این 5 خط توی تمام صفحات سایت باید تکرار بشه با این تفاوت که فقط یک کلمه توی هر کدوم تغییر می کنه.
میشه این 5 خط رو یه طوری توی یک فایل بنویسم بعد بیام این کلمات رو از هر صفحه مدیریت کنم تا حجم کدهای نوشته شده ام کمتر بشه؟
:متفکر:

hamid_shrk
یک شنبه 03 اردیبهشت 1391, 21:56 عصر
موضوعی که گفتید اصلا انقدر ها مهم نیست که بخواید واسش دنبال راه حل باشید.

Beginner2013
یک شنبه 03 اردیبهشت 1391, 22:02 عصر
سلام من 5 خط دستور اسکریت دارم که این 5 خط توی تمام صفحات سایت باید تکرار بشه با این تفاوت که فقط یک کلمه توی هر کدوم تغییر می کنه.
میشه این 5 خط رو یه طوری توی یک فایل بنویسم بعد بیام این کلمات رو از هر صفحه مدیریت کنم تا حجم کدهای نوشته شده ام کمتر بشه؟
:متفکر:

مساله اینه که در هر صورت اون 5 خط در همه صفحات شما لود خواهند شد و تنها تاثیر اپسیلونی در هارد استفاده شده و نه سرعت لود صفحه خواهد داشت.

d_derakhshani
یک شنبه 03 اردیبهشت 1391, 22:17 عصر
جواب هايي كه دوستان گفتن همه درسته. فقط اينه اگه لازم شده براي هر صفحه اسكريپت خودش رو بنويسيد يه موقع در چند فايل جداگانه قرار نديد.
اما با تمام اين احوال چون ممكنه كه تعداد صفحات بالا بره و به ازاي هر صفحه مجبور بشيد يك اسكريپت بنويسيد و اين براي خودش چالشي خواهد شد بهتره كد تون رو قرار بديد و بگيد چي مي خوايد تا راه حل اون بررسي بشه.

mehdin69
یک شنبه 03 اردیبهشت 1391, 23:04 عصر
خب مرسی ازتون این که آره می دونم زیاد تاثیری نداره
اما به 2 دلیل می خوام این کار رو بکنم.
اول : کد نویسیم زیبا تر و خوانا تر بشه
دوم : این همه دستور رو نخوام بنویسم.

الان تعداد صفحات به 117 تا صفحه رسیده و همینطور هم بالاتر میره خب زیاد جالب نیست این کار
مثلاً نمونه کدی که دارم اینه


<script type="text/javascript">
$(document).ready(function () {
$('a#popupedit').live('click', function (e) {

var page = $(this).attr("href")

var $dialog = $('<div></div>')
.html('<iframe style="border: 0px; " src="' + page + '" width="100%" height="100%"></iframe>')
.dialog({
autoOpen: false,
modal: true,
height: 600,
width: 400,
title: "ویرایش آگهی",
buttons: {
"بستن ویرایش ": function () { $dialog.dialog('close'); }
},
close: function (event, ui) {

__doPostBack('<%= btnRefresh.ClientID %>', '');
}
});
$dialog.dialog('open');
e.preventDefault();
});
});
</script>


که یه پنجره باز میکنه برای " ویرایش آگهی ها " حالا همین رو برای همه صفحه ها می خوام مثلاً این متن ویرایش آگهی میشه ویرایش نام کاربری ، ویرایش گروه کاربری و الا آخر...

مرسی :خجالت:

d_derakhshani
یک شنبه 03 اردیبهشت 1391, 23:24 عصر
ساده: يك متغير در هر صفحه تون تعريف كنيد به نام DialogTitle اون رو در صفحه مربوطه مقدار دهي كنيد. حالا جاي عبارت جلوي title بگذاريد:

'<%= DialogTitle %>'

راه هاي ديگه اي هم هست كه در پست ديگه قرار ميدم

d_derakhshani
دوشنبه 04 اردیبهشت 1391, 09:01 صبح
خوب حالا بریم سر راه بعدی:
به تگ a یک custom attribute اضافه کنید به نام title و مقدار دلخواه تون رو بهش بدید(مثلا ویرایش آگهی، کاربر و ...) بعد جلوی title: 'ویرایش آگهی' بنویسید
$(this).attr("title")
فقط این نکته رو اضافه کنم که دستور live داره منسوخ میشه. این دستور واسه JQ 1.3 بوده در 1.4.3 از Delegate و در 1.7 از on استفاده کنید