আমি আপনি ঠিক মনে করেন. এই পদ্ধতিটি খুব বিশ্বব্যাপী ...
যাইহোক - এটি যখন আপনার এজেএক্স কলটির পৃষ্ঠাতে কোনও প্রভাব পড়ে না তখন এটি একটি ভাল ডিফল্ট। (উদাহরণস্বরূপ পটভূমি সংরক্ষণ করুন)। (আপনি সর্বদা এটি "বিশ্বব্যাপী" পাস করে একটি নির্দিষ্ট অজ্যাক্স কলের জন্য স্যুইচ অফ করতে পারেন: মিথ্যা - jquery এ ডকুমেন্টেশন দেখুন
যখন এজেএক্স কলটি পৃষ্ঠার অংশটি রিফ্রেশ করার জন্য বোঝানো হয়েছে তখন আমার "লোডিং" চিত্রগুলি সতেজ বিভাগের জন্য নির্দিষ্ট হওয়া পছন্দ করি। আমি দেখতে চাই কোন অংশটি সতেজ হয়েছে।
আপনি যদি এমন কিছু লিখতে পারেন তবে তা কত শীতল হবে তা কল্পনা করুন:
$("#component_to_refresh").ajax( { ... } );
এবং এটি এই বিভাগে একটি "লোডিং" দেখায়। নীচে একটি ফাংশন আমি লিখেছি যে "লোডিং" ডিসপ্লেটিও পরিচালনা করে তবে এটি আপনি অ্যাজ্যাক্সে সতেজ হওয়া অঞ্চলটির সাথে সুনির্দিষ্ট।
প্রথমে আমি আপনাকে এটি কীভাবে ব্যবহার করতে হয় তা দেখিয়ে দিন
<!-- assume you have this HTML and you would like to refresh
it / load the content with ajax -->
<span id="email" name="name" class="ajax-loading">
</span>
<!-- then you have the following javascript -->
$(document).ready(function(){
$("#email").ajax({'url':"/my/url", load:true, global:false});
})
এবং এটি ফাংশন - এটি একটি প্রাথমিক সূচনা যা আপনি নিজের ইচ্ছে মতো উন্নত করতে পারেন। এটা খুব নমনীয়।
jQuery.fn.ajax = function(options)
{
var $this = $(this);
debugger;
function invokeFunc(func, arguments)
{
if ( typeof(func) == "function")
{
func( arguments ) ;
}
}
function _think( obj, think )
{
if ( think )
{
obj.html('<div class="loading" style="background: url(/public/images/loading_1.gif) no-repeat; display:inline-block; width:70px; height:30px; padding-left:25px;"> Loading ... </div>');
}
else
{
obj.find(".loading").hide();
}
}
function makeMeThink( think )
{
if ( $this.is(".ajax-loading") )
{
_think($this,think);
}
else
{
_think($this, think);
}
}
options = $.extend({}, options); // make options not null - ridiculous, but still.
// read more about ajax events
var newoptions = $.extend({
beforeSend: function()
{
invokeFunc(options.beforeSend, null);
makeMeThink(true);
},
complete: function()
{
invokeFunc(options.complete);
makeMeThink(false);
},
success:function(result)
{
invokeFunc(options.success);
if ( options.load )
{
$this.html(result);
}
}
}, options);
$.ajax(newoptions);
};