گاهی اوقات نیاز داریم اطلاعاتی را در یک بانک sql درج کنیم که ممکنه این اطلاعات حجمشون زیاد باشه و در واقع تعداد رکورد های ما زیاد باشه خوب اگه بخواهیم این اطلاعات رو رکورد به رکورد بخونیم و در یک بانک درج کنیم ممکنه زمان زیادی طول بکشه روشی که برای ذخیره اطلاعات با حجم زیاد در sql وجود داره اینه که ابتدا باید داده ها رو در یک datatable و یا یک datareader قرار بدیم و بعد با استفاده از دستورات زیر اطلاعات رو در مدت زمان کوتاهی در بانک مورد نظر ذخیره کنیم SqlBulkCopy
sbc.DestinationTableName = tablename;
sbc.WriteToServer(datatablename);
sbc.Close();
با استفاده از دستورات بالا، محتویات datatable ما در جدول مورد نظر درج خواهد شد
دقت دارید که ساختار datatable باید شبیه به جدول بانک اطلاعاتی باشد .
فرض کنید فایلی متنی داریم که این فایل دارای اطلاعاتی است که اطلاعات آن شبیه به جدول در آن ذخیره شده مثلا هر رکورد در یک خط ذخیره شده و هر فیلد از هر رکورد آن با کاراکتر تب( t\ ) از هم جدا شده و می خواهیم اطلاعات این فایل رو در یک جدول از بانک sql ذخیره کنیم فرض کنید محتویات فایل به شکل زیر باشه amir niazai 123 mohammad sadeghi 456 برای ذخیره این فایل درون یک جدول Sql ( که جدول باید دارای 3 فیلد باشه ) به شکل زیر عمل می کنیم bulk insert fegh.dbo.treemain که نام جدول و بانک رو جلوی دستور bulk insert میاریم آدرس فایل رو هم جلوی دستور from و ساختار فایل رو هم در قسمت with
FROM 'C:\Users\Niazi\Desktop\table\tree.txt'
WITH
(
FIELDTERMINATOR ='\t',
ROWTERMINATOR ='\n',
codepage='1256'
)
بسیاری از وقتها شده که توی سایت می خواهیم یه عکسی رو بگذاریم و وقتی کار بر روی یکی از اشیا اون عکس کلیک کرد وارد یه صفحه دیگه شد. عموما اینکار رو با فلش و تا حد کمی با جی کوئری انجام میشه .
خوشبختانه تکی به نام map وجود داره که کمتر استفاده میشه بوسیله اون میشه با توجه به اشاره گر موس روی عکس یک لینک خاصی رو ارائه کرد.
به فرم نوشت map در زیر دقت کنید.
<map name="planetmap">
<area shape="rect" coords="0,0,82,126" alt="Sun" href="sun.htm" />
<area shape="circle" coords="90,58,3" alt="Mercury" href="mercur.htm" />
<area shape="circle" coords="124,58,8" alt="Venus" href="venus.htm" />
</map>
بعدش با استفاده از تک map یک map ایجاد می کنیم و در قسمت نامش همان نامی رو وارد می کنیم که در usemap وارد کرده ایم در واقع با این کار می گیم که map روی کدوم تصویر اعمال بشه
سپس نواحی یا همون area را در map مشخص می کنیم
نحوه ایجاد area در بالا به خوبی قابل مشاهد ه هستش
بعنوان مثال در سطر اول میگیم یه مستطیل از نقطه 0 و 0 تا نقطه 82 و 126 اگر روی آن کلیک شد صفحه sun.htm رو باز کنه.
در area دوم میگیم یک دایره که مرکز آن 90 و 58 هستش و با شعاع 3 اگر کلیک شد صفحه mercur.htm را باز کنه
لینک مثالش هم اینجا موجوده!!!!
که روی هر شی از عکس کلیک کنید اون عکس رو بصورت جداگانه میاره.
در مواقعی که توسعه دهنده یک سایت بزرگ باشیم ,
تکنیکهای بسیاری برای لود سریعتر سایت استفاده میشود. در اینگونه سایتها به علت اینکه کاربران سایت از
سرتاسر جهان به آن وارد میشوند , ممکن است برای برخی از کاربران زمان لود سایت
بالا باشد که یکی از علل آن مسافت زیاد تا محل سرور است. برای مثال فرض کنید ما
بخواهیم به سایت یاهو که سرور آن در آمریکاست مراجعه کنیم , مسلما اگر درخواست ما
به سرور یاهو در آمریکا ارسال شود , زمان پاسخدهی به آن بسیار بالا خواهد بود. اما
یاهو از چه تکنیکی استفاده کرده است که به درخواست ما در حال حاضر سریعتر پاسخ
داده میشود؟
یکی از تکنیک هایی که برای تسریع لود صفحه در چنین سایتهای بزرگ از آن استفاده میشود
CDN است. برای پیاده سازی مفهوم CDN در یک سایت از
ایجاد سرورهای مختلف در نقاط جغرافیایی مختلف استفاده میکنند. بدین ترتیب کاربر
اطلاعات را از سروری که از لحاظ جغرافیایی به او نزدیکتر است دریافت میکند. البته
در این روش اغلب دیتای استاتیک مثل تصاویر و فایل های سیاساس را در سرورهای CDN قرار میدهند. برخی از مزایایی که
استفاده از CDN
ها به ارمغان میآورد : -
بالارفتن سرعت لود صفحات -
استفاده از تصاویری مختلف در محدودههای مختلف -
کمتر شدن فشار وارده به سرور مرکزی در مواقعی که ترافیک
سایت بالا میرود -
تهیه پشتیبان از فایلها به صورت غیر متمرکز اما ممکن است سایتی که ما در حال توسعه آن باشیم
یا سایتی که متعلق به ماست یک سایت محلی یا منطقهای باشد , در اینصورت مسلما استفاده از CDN به صورت ذکرشده مقرون به صرفه نیست.
اما با این حال هم CDN میتواند برای سایت های کوچک مفید باشد , چطور؟ فرض کنید ما برای ساخت یک سایت از کتابخانه جیکوئری
هم استفاده کرده باشیم , در این صورت میتوان گفت که اگر لینک به فایل جیکوئری را از یکی از CDN ها دریافت کنیم سرعت لود سایت ما
بالاتر میرود. علت سریعتر شدن لود سایت به دلیل نزدیکی جغرافیایی نیست بلکه به
این دلیل است که ممکن است کاربر قبلا به سایتی مراجه کرده باشد که همان فایل را از
همان CDN بر روی کامپیوتر کاربر دانلود کرده
باشد و فایل , داخل کش مرورگر قرار گرفته باشد در اینصورت به علت یکی بودن آدرس
فایلها اصلا نیازی به دانلود مجدد فایل نیست. از طرفی مزیت دیگر این روش در این است که
در صورتی که بازدید سایت شما زیاد شود , بابت دانلود فایلی که در CDN قرار دارد از Bandwith هاست شما استفاده نمیشود. درحال حاضر پراستفاده ترین فایل CDN , فایل کتابخانه جیکوئری است که در
سرور CDN گوگل به آدرس زیر قرار دارد : http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js برای دریافت آدرس کتابخانههای معروف به صورت تگ
اسکریپت از CDN گوگل از این سایت استفاده کنید.
- برچسب ها:جی کوئری ،CDN ،content delivery network ،بهینه سازی ،
- دنبالک ها:cdn کتابخانه های معروف ،
در این پست و پست های بعدی قصد داریم به معرفی
افزونه های jquey و نحوه ارتباط آنها در ASP.Net بپردازیم. در این مقاله می خواهیم نحوه استفاده از افروزنه
autocomplete در asp.net به منظور بازیابی اطلاعات از یک webmethod را توسط Ajax نشان دهیم.
برای این منظور ابتدا دو افزونه jquery-1.4.1.min.js و jquery-ui.min.js و یک کلاس jquery-ui-1.8.13.custom.css
رو به صفحه اضافه می کنیم.
<head > <script src="Scripts/jquery-1.4.1.min.js"
type="text/javascript"></script> <script src="Scripts/jquery-ui.min.js"
type="text/javascript"></script> <link href="Styles/jquery-ui-1.8.13.custom.css"
rel="stylesheet"
type="text/css"
/>
نحوه استفاده از
افزونه نیز به صورت زیر می باشد:
<script type="text/javascript"> $(function () {
$("#PersonName").autocomplete({
source: function (request, response) {
$.ajax({ url: "Default.aspx/GetPerson",//متدی که اطلاعات به آن فرستاده و
خوانده می شود dataType: "json", type: "POST", contentType: "application/json; charset=utf-8",
data: "{ 'name': '" + request.term + "'}",//پارامتری
که به متد فرستاده می شود success: function (data) {
response($.map(data.d, function (item) { return { value: item.ProductName//افزودن اطلاعات به منو } })); }
});
},
minLength: 1
}); }); </script>
بعد از مشخص کردن کنترلی که می خواهیم افزونه را به آن
اعمال کنیم$("#PersonName")
در قسمت source منبع اطلاعاتی رو مشخص می کنیم که در اینجا از
طریق Ajax اطلاعات را از یک WebMethod دریافت می کنیم.توضیحات بیشتر در مورد Ajax رو می تونید از
اینجا مشاهده کنید.به ازای هر کاراکتری که در کنترل textbox وارد می شود
اطلاعات توسط دستور request به WebMethod ارسال شده و
اطلاعات بازگشتی با دستور response به منوی autocomplete در
صورت وجود اضافه می شود. minLength:حداقل تعداد
کاراکتری که باید وارد شود تا افزونه عمل کند. [WebMethod] public static List<Person>
GetPerson(string name) { var context = new Person(); var query = from Person c in
context.GetPerson() where c.PersonName.StartsWith(name) select new Person() { PersonName = c.PersonName }; return query.ToList(); } در این متد هر مقداری که توسط دستور request
ارسال می شود جستجو شده و نتیجه به صورت List برمی گردد.
توسط کلاس .ui-autocomplete می توان تغییراتی در ظاهر افزونه ایجاد
کرد که از جمله خصوصیات عبارتند از:
max-height: حداکثر ارتفاع منو.در صورت لزوم Scroll
عمودی فعال می شود. max-width: حداکثر پهنای منو.در صورت لزوم Scroll افقی فعال می شود. padding-righ:فاصله آیتم ها از لبه سمت راست منو padding-left: فاصله آیتم ها از لبه سمت چپ منو
همچنین توسط کلاس .ui-autocomplete-loading می توان یک
آیکون loading به کنترل اضافه کرد.
- برچسب ها:jquery autocomplete in asp.net ،jquery autocomplete ،jquery plugin ،
- دنبالک ها:Jquery Autocomplete ،
تبلیغات 