uy - Internetni sozlash
Hamkorlik dasturi. PHP demonini u bilan aloqani yo'qotmasdan qayta ishga tushirish Falokat muvaffaqiyati php
So'rovni sozlaydigan kalit/qiymat juftliklari to'plami AJAX. Barcha parametrlar ixtiyoriy. $.ajaxSetup() usuli yordamida har qanday parametr uchun standart qiymatni o'rnatish qabul qilinadi, lekin tavsiya etilmaydi.
$.ajax() usuli quyidagi parametrlarni qo'llab-quvvatlaydi:

    qabul qiladi (standart: dataType ga bog'liq).

    Turi: PlainObject.
    Yuboriladigan kalit/qiymat juftliklari to'plami Qabul qiling so'rov sarlavhasi. Ushbu sarlavha serverga so'rov javob sifatida qanday javobni qabul qilishini aytadi. E'tibor bering, dataType-da ko'rsatilgan parametrning qiymati (serverdan biz kutgan ma'lumotlar turi) parametrda ko'rsatilganiga mos keladi. Bunga qo'shimcha ravishda, serverdan javobni to'g'ri qayta ishlash uchun siz konvertorlar parametrida o'zgartirilgan javob qiymatini qaytaradigan funktsiyani belgilashingiz kerak. Masalan: $.ajax(( qabul qiladi : ( mycustomtype: "application/x-some-custom-type" ), // javob konvertorlarini qanday qayta ishlashni belgilang : ( "matn mycustomtype": funksiya ( natija) ( // o'zgartirilgan javob qiymatini qaytarish newresult; ) ), // kutilayotgan ma'lumotlar turi ("mycustomtype") dataType : "mycustomtype" ) );

    async (standart: true ).

    Turi: mantiqiy.
    Odatiy bo'lib, barcha so'rovlar asinxron tarzda yuboriladi; agar siz sinxron so'rovlarni tashkil qilishingiz kerak bo'lsa, bu parametrni false ga o'rnating. Domenlararo so'rovlar va dataType parametri bo'lgan elementga e'tibor bering "jsonp" sinxron rejimda so'rovlarni qo'llab-quvvatlamaydi. E'tibor bering, sinxron so'rovlardan foydalanib, so'rov faol bo'lgan vaqtda istalgan amalni o'chirib, brauzerni vaqtincha bloklashingiz mumkin.

    oldin yuborish. Turi: Funktsiya (jqXHR jqXHR,PlainObject sozlamalar).
    AJAX so'rovi amalga oshirilishidan oldin chaqiriladigan qayta qo'ng'iroq funktsiyasi. Funktsiya jqXHR ob'ektini (jQuery 1.4.x da XMLHTTPRequest obyektini) jo'natishdan oldin o'zgartirishga imkon beradi. JqXHR ob'ekti XMLHttpRequest ob'ektini kengaytiruvchi qo'shimcha bo'lib, ob'ekt server javobi haqida to'liqroq ma'lumot olishga imkon beruvchi ko'plab xususiyatlar va usullarni o'z ichiga oladi va ob'ektda Promise usullari ham mavjud. Agar beforeSend funktsiyasi false ni qaytarsa, AJAX so'rovi bekor qilinadi. Versiyadan beri jQuery 1.5 beforeSend funksiyasi so'rov turidan qat'iy nazar chaqiriladi.

    kesh (standart: true, dataType uchun "skript" Va "jsonp" yolg'on).

    Turi: mantiqiy.
    Agar “false” qiymati sozlangan boʻlsa, bu soʻralgan sahifalarning brauzer tomonidan keshlanishiga olib keladi. Esda tutingki, false faqat bilan to'g'ri ishlaydi BOSH Va OLISH so'rovlar.

    to'liq.

    Turi: Funktsiya (jqXHR jqXHR, String textStatus).
    So'rov tugagandan so'ng chaqiriladigan funktsiya (funktsiya AJAX hodisalaridan keyin bajariladi "muvaffaqiyat" yoki "xato"). Funktsiyaga ikkita parametr uzatiladi: jqXHR(jQuery 1.4.x ob'ektida XMLHTTP so'rovi) va so'rov holatiga mos keladigan qator ( "muvaffaqiyat", "o'zgartirilmagan", "tarkib yo'q", "xato", "taym-aut; turib qolish; tanaffus", "abort", yoki "parsererror"). jQuery 1.5 dan boshlab, to'liq parametr birma-bir chaqiriladigan funktsiyalar qatorini qabul qilishi mumkin.

    tarkibi.

    Turi: PlainObject.
    Tarkib turiga qarab jQuery javobni qanday qayta ishlashini (tahlil qilishini) aniqlaydigan satr/regex juftlaridan iborat ob'ekt. jQuery 1.5 da qo'shilgan.

    contentType (standart: "application/x-www-form-urlencoded; charset=UTF-8").

    Turi: Boolean yoki String.
    Serverga ma'lumotlarni yuborishda so'rovda ko'rsatilgan kontent turini belgilaydi. jQuery 1.6 dan boshlab, false qiymatini belgilash mumkin, bu holda jQuery sarlavhadagi maydondan o'tmaydi. Kontent turi umuman.

    kontekst.

    Turi: PlainObject.
    AJAX qayta qo'ng'iroq funksiyalarini bajarishda ularning bajarilishi konteksti oyna obyekti hisoblanadi. Kontekst parametri funktsiyani bajarish kontekstini $(this ) ma'lum bir DOM elementi yoki ob'ektiga murojaat qilish uchun sozlash imkonini beradi. Masalan: $.ajax(( url : "test.html ", kontekst : $(".myClass "), // yangi funktsiyani bajarish konteksti muvaffaqiyati : funktsiya ()( // agar so'rov muvaffaqiyatli bo'lsa, $ funktsiyasini chaqiring. (bu ).html ("Hammasi yaxshi"); // class.myClass bilan elementga matn mazmunini qo'shing ) ) );

    konvertorlar

    Standart qiymatlar:
    ( "* text ": window.String, // "matn html" matnidagi har qanday turdagi: true, // html "text json"dagi matn: jQuery.parseJSON, // JSON "matn xml"dagi matn: jQuery.parseXML // XML-dagi matn) Turi: PlainObject.
    Konvertatsiya qilinadigan ma'lumotlar turini va uni qanday aylantirishni o'z ichiga olgan ob'ekt. Har bir konvertorning qiymati o'zgartirilgan javob qiymatini qaytaradigan funktsiyadir. jQuery 1.5 da qo'shilgan.

    crossDomain (standart: bir xil domendagi so'rovlar uchun noto'g'ri, domenlararo so'rovlar uchun haqiqiy).

    Turi: mantiqiy.
    Agar siz bir xil domenda (masalan, jsonp so'rovi) o'zaro domen so'rovini yubormoqchi bo'lsangiz, bu parametrni true ga o'rnating. Bu, masalan, so'rovni serveringizdan boshqa domenga yo'naltirish imkonini beradi. jQuery 1.5 da qo'shilgan.

    Turi: PlainObject, yoki String yoki Massiv.
    Serverga yuboriladigan ma'lumotlar. Agar ular satr bo'lmasa, ular so'rovlar qatoriga aylantiriladi. Uchun OLISH so'rovlar bo'lsa, satr URL manziliga qo'shiladi. Avtomatik ishlov berishning oldini olish uchun siz processData parametridan false qiymati bilan foydalanishingiz mumkin. Agar ma'lumotlar ob'ektning bir qismi sifatida uzatilsa, u kalit/qiymat juftliklaridan iborat bo'lishi kerak. Agar qiymat massiv bo'lsa, jQuery bir xil kalit bilan bir nechta qiymatlarni ketma-ketlashtiradi (an'anaviy parametr qiymatiga qarab, $.param usuliga asoslangan an'anaviy seriyalash turini ta'minlaydi).

    ma'lumotlar filtri.

    Turi: Funktsiya (String ma'lumotlar, String turi) => Hamma narsa.
    Funktsiya AJAX so'rovi muvaffaqiyatli bajarilgandan so'ng chaqiriladi va server javobidan olingan "xom" ma'lumotlarni qayta ishlashga imkon beradi. Ma'lumotlarni qaytarish qayta ishlashdan so'ng darhol amalga oshirilishi kerak. Funktsiya ikkita argumentni oladi: ma'lumotlar- serverdan satr shaklida olingan ma'lumotlar va turi- ushbu ma'lumotlarning turi (dataType parametrining qiymati).

    ma'lumotlar turi (standart: xml, json, skript, yoki html).

    Turi: String.
    Serverdan olishni kutayotgan ma'lumotlar turini belgilaydi. Agar ma'lumotlar turi ko'rsatilmagan bo'lsa, jQuery uni javobdan MIME turiga qarab aniqlashga harakat qiladi ( XML turi MIME jQuery 1.4 dan boshlab XML ga olib keladi json ob'ekt beradi JavaScript, skript skriptni bajaradi va qolgan hamma narsa satr sifatida qaytariladi).

    Asosiy turlar (natija muvaffaqiyatli qayta qo'ng'iroq qilish funktsiyasiga birinchi argument sifatida uzatiladi):

    • "xml" - qaytaradi XML jQuery yordamida ko'rsatilishi mumkin bo'lgan hujjat.
    • "html" - qaytaradi HTML oddiy matn sifatida teglar hujjat ob'ekt modeliga kiritilgandan so'ng qayta ishlanadi va bajariladi ( DOM).
    • "skript" - javobni deb baholaydi JavaScript va uni oddiy matn sifatida qaytaradi. Kesh parametri rost bo'lsa ham, so'rovlar qatoriga _= parametrini qo'shish orqali keshlashni o'chiradi. Bu usulni aylantiradi POST V OLISH domenlararo so'rovlar uchun.
    • "json" - javobni shunday baholaydi JSON va ob'ektni qaytaradi JavaScript. Oʻzaro domen "json" so'rovlar ga aylantiriladi "jsonp", agar so'rov parametrlarida jsonp ko'rsatilmagan bo'lsa: false . Ma'lumotlar JSON qat'iy tartibda tahlil qilinadi va umumiy qabul qilingan formatga mos kelishi kerak, har qanday noto'g'ri JSON rad etiladi va xatolik yuz beradi. jQuery 1.9 dan boshlab bo'sh javob qabul qilinmaydi; server javob sifatida NULL yoki () ni qaytarishi kerak.
    • "jsonp" - formatdagi ma'lumotlarni yuklaydi JSON, yuklab olish formatidan foydalangan holda JSONP. Oxiriga qo'shimcha "?callback=? " parametrini qo'shadi URL ishlov beruvchi funktsiyasi nomini ko'rsatish uchun manzillar. _= parametrini qo'shish orqali keshlashni o'chiradi URL manzil, hatto kesh parametri rost bo'lsa ham.
    • "matn" oddiy matn qatoridir.
    • bir nechta qiymatlar - qiymatlar bo'sh joy bilan ajratilgan. 1.5 versiyasidan boshlab jQuery sarlavhaning Content-Type bo'limida olingan ma'lumotlar turini kerakli ma'lumotlar turiga o'zgartirishi mumkin. Misol uchun, agar siz matnli javobni XML sifatida talqin qilishni istasangiz, ushbu ma'lumotlar turi uchun "matnli XML" dan foydalaning. Shuningdek, siz JSONP so'rovini yuborishingiz, uni matn sifatida qabul qilishingiz va uni sharhlashingiz mumkin XML: "jsonp matn XML" . Quyidagi qator ham xuddi shunday qiladi: "jsonp XML", jQuery dan aylantirishga harakat qiladi JSONP V XML, muvaffaqiyatsiz urinishdan keyin aylantirishga harakat qiladi JSONP matnga, keyin esa matndan ichiga XML.
  • Turi: Funktsiya (jqXHR jqXHR, String textStatus, String xato tashlandi).
    AJAX so'rovi bajarilmagan bo'lsa chaqiriladigan qayta qo'ng'iroq funktsiyasi. Funktsiya uchta argumentni oladi:

    • jqXHR- jqXHR obyekti (jQuery 1.4.x da, XMLHttpRequest obyekti).
    • textStatus- sodir bo'lgan xato turini tavsiflovchi satr. Mumkin qiymatlar (null dan tashqari) emas "taym-aut; turib qolish; tanaffus", "xato", "abort" Va "parsererror".
    • xato tashlandi- agar yuzaga kelgan bo'lsa, qo'shimcha istisno ob'ekti. Xatolik yuz berganda HTTP argument davlatning matn qismini oladi, masalan. "Topilmadi", yoki "Serverdagi ichki xatolik".
    Versiyadan beri jQuery 1.5 Funktsiyalar massivini parametr qiymati sifatida o'tkazishga ruxsat beriladi va har bir funktsiya o'z navbatida chaqiriladi. E'tibor bering, ushbu ishlov beruvchi o'zaro domen skriptlari va JSONP so'rovlari uchun chaqirilmaydi.
  • global (standart: true ).

    Turi: mantiqiy.
    Bu soʻrov uchun global AJAX hodisa ishlov beruvchilarini chaqirishga ruxsat yoki yoʻqligini aniqlaydigan mantiqiy parametr. Standart qiymat rost. Agar .ajaxStart() yoki .ajaxStop() kabi global hodisa ishlov beruvchilarini chaqirishni oldini olishingiz kerak bo'lsa, false dan foydalaning.

    sarlavhalar (standart: ( ) ).

    Turi: PlainObject.
    XMLHttpRequest obyekti yordamida soʻrov bilan birga yuboriladigan qoʻshimcha soʻrov sarlavhalarining kalit/qiymat juftlarini oʻz ichiga olgan obyekt. Iltimos, sarlavhaga e'tibor bering X-so'ralgan-bilan: XMLHttpRequest har doim qo'shiladi, lekin XMLHttpRequest qiymati sukut bo'yicha ushbu parametr yordamida o'zgartirilishi mumkin. Sarlavhalar qiymatlari beforeSend parametri bilan ham bekor qilinishi mumkin. jQuery 1.5 da qo'shilgan.

    ifModified (standart: false ).

    Turi: mantiqiy.
    Odatiy bo'lib, qiymat noto'g'ri bo'lib, HTTP so'rovi sarlavhasi maydonlariga e'tibor bermaydi va "true"ga o'rnatilganda, AJAX so'rovi muvaffaqiyatli holatga o'tkaziladi ( muvaffaqiyat), faqat oxirgi so'rovdan keyin serverdan javob o'zgargan bo'lsa. Tasdiqlash oxirgi tahrirlangan sarlavha maydonini tekshirish orqali amalga oshiriladi. Versiyadan beri jQuery 1.4, Oxirgi tahrirlangan sarlavhadan tashqari, "etag" ham tekshiriladi ( ob'ekt yorlig'i) veb-server tomonidan URL manzilida topilgan resursning ma'lum bir versiyasiga tayinlangan shaxsiy identifikatordir. Agar ushbu manzil uchun resurs tarkibi yangisiga o'zgartirilsa, yangi etag tayinlanadi.

    isLocal (standart: joriy joylashuvga bog'liq).

    Turi: mantiqiy.
    Joriy muhitni "mahalliy" (masalan, file:///url) deb belgilash uchun true dan foydalaning, hatto jQuery uni sukut bo'yicha tan olmasa ham. Hozirgi vaqtda quyidagi protokollar mahalliy deb tan olingan: fayl, * - kengaytma Va vidjet. Agar isLocal parametrini o'zgartirish kerak bo'lsa, buni $.ajaxSetup() funksiyasidan foydalanib bir marta bajarish tavsiya etiladi. jQuery 1.5.1 da qo'shilgan.

    Turi: Boolean yoki String.
    Qayta qo'ng'iroq qilish funktsiyasi nomini bekor qiladi JSONP iltimos. Bu qiymat "qayta qo'ng'iroq" o'rniga ishlatiladi ( "http://domain.ru/test.php?callback=?") URLdagi so'rovlar qatorining bir qismi sifatida. Masalan, qiymat (jsonp: "onLoad") serverga quyidagi so'rovlar qatori sifatida uzatiladi. "http://domain/test.php?onLoad=?".
    jQuery 1.5 dan beri jsonp parametrini false ga o'rnatish "?callback" qatorini URL manziliga qo'shishni oldini oladi yoki javobni hal qilish uchun "=?" dan foydalanishga harakat qiladi. Bunday holda, jsonpCallback parametrining qiymatini qo'shimcha ravishda belgilashingiz kerak, masalan: ( jsonp : false , jsonpCallback : "callbackName " ) Xavfsizlik nuqtai nazaridan, agar siz AJAX so'rovlaringiz maqsadiga ishonmasangiz, u holda tavsiya etiladi: jsonp parametrining qiymatini noto'g'ri qilib qo'ying.

    jsonpCallback.

    Turi: String yoki Function.
    Qayta qo'ng'iroq qilish funksiyasining nomini belgilaydi JSONP iltimos. Bu qiymat jQuery tomonidan avtomatik ravishda yaratilgan va tayinlanadigan tasodifiy nom o'rniga ishlatiladi. jQuery-ning o'ziga xos nomini yaratish tavsiya etiladi, bu so'rovlarni boshqarishni va yuzaga kelishi mumkin bo'lgan xatolarni boshqarishni osonlashtiradi. Ba'zi hollarda o'z funksiya nomini o'rnatish brauzer keshini yaxshilaydi OLISH so'rovlar.
    jQuery 1.5 dan boshlab jsonpCallback parametrining qiymati sifatida funktsiyani belgilashingiz mumkin. Bunday holda, jsonpCallback parametrining qiymati ushbu funktsiyaning qaytish qiymatiga o'rnatilishi kerak.

    usul (standart: "OLING").

    Turi: String.
    Usul HTTP, so'rov uchun ishlatiladi (masalan, "POST", "OLING", "QO'YISH"). jQuery 1.9.0 da qo'shilgan.

    mimeType.

    Turi: String.
    XHR obyektida belgilangan standart MIME turini bekor qiluvchi MIME turi. jQuery 1.5.1 da qo'shilgan.

    parol.

    Turi: String.
    Kirish autentifikatsiya so'roviga javobda XMLHttpRequest bilan ishlatiladigan parol HTTP.

    processData (standart: rost).

    Turi: mantiqiy.
    Odatiy bo'lib, ob'ekt sifatida ma'lumotlar parametriga uzatilgan ma'lumotlar qayta ishlanadi va standart ma'lumotlar turiga mos keladigan so'rovlar qatoriga aylantiriladi. "ilova/x-www-form-urlencoded". Agar siz DOMDocument yoki boshqa ishlov berilmagan ma'lumotlarni yuborishingiz kerak bo'lsa, bu parametrni false ga o'rnating.

    scriptCharset.

    Turi: String.
    Belgilar to'plami atributini (belgilarni kodlash) so'rovda ishlatiladigan HTML tegiga o'rnatadi. Sahifadagi kodlash masofaviy skript kodlashidan farq qilganda foydalaniladi. Esda tutingki, scriptCharset parametri faqat qiymatga ega boʻlgan turdagi parametrli domenlararo soʻrovlar uchun amal qiladi. "OLING"(standart) va qiymatga ega dataType parametri "jsonp", yoki "skript".

    statusCode (standart: ( ) ).

    Turi: PlainObject.
    Raqamli kodlar ob'ekti HTTP va server javob kodi tegishli qiymatga ega bo'lganda chaqiriladigan funktsiyalar (ma'lum bir kod HTTP). Masalan, agar serverdan javob kodi olinsa, quyidagi funksiya chaqiriladi 404 , yoki "Topilmadi"(mijoz server bilan bog'lana olganligini ko'rsatadigan standart HTTP javob kodi, lekin server so'ralgan ma'lumotlarni topa olmadi.): $.ajax(( statusCode : ( 404: funktsiya ()( // HTTP bo'lsa funktsiyani bajarish) javob kodi 404 alert("sahifa topilmadi"); ), , 403: funktsiya ()( // HTTP javob kodi 403 bo'lsa, funktsiyani bajaring alert("kirish taqiqlangan"); ) ) ) );

    muvaffaqiyat.

    Turi: Funktsiya (har qanday narsa ma'lumotlar, String textStatus,jqXHR jqXHR).
    AJAX so'rovi muvaffaqiyatli bo'lsa, chaqiriladigan qayta qo'ng'iroq funktsiyasi. Funktsiya uchta argument orqali uzatiladi:

    • ma'lumotlar- serverdan qaytarilgan ma'lumotlar. Ma'lumotlar, agar ko'rsatilgan bo'lsa, dataType yoki dataFilter parametrlariga muvofiq formatlanadi
    • textStatus- so'rovning holatini tavsiflovchi satr.
    • jqXHR- jqXHR ob'ekti (versiyagacha jQuery 1.4.x XMLHttpRequest obyekti).
    Versiyadan beri jQuery 1.5 Funktsiyalar massivini parametr qiymati sifatida o'tkazishga ruxsat beriladi va har bir funktsiya o'z navbatida chaqiriladi.
  • taym-aut; turib qolish; tanaffus.

    Turi: raqam.
    O'rnatadi millisekundlar so'rov muddati tugashi. Ma'nosi 0 vaqt tugashi belgilanmaganligini bildiradi. Shuni esda tutingki, bu parametr $.ajaxSetup() funksiyasidan foydalangan holda belgilangan vaqt tugash qiymatini bekor qiladi. Kutish vaqti $.ajax() usuli chaqirilgan paytdan boshlanadi.

    an'anaviy.

    Turi: mantiqiy.
    Agar siz an'anaviy seriyalash opsiyalaridan foydalanishni rejalashtirmoqchi bo'lsangiz (string URL so'rov yoki so'rov AJAX), keyin ushbu parametrning qiymatini rostga o'rnating.

    turi (standart: "OLING").

    Turi: String.
    Usul parametri uchun taxallus. Agar siz versiyalardan foydalanayotgan bo'lsangiz, turini ishlatishingiz kerak jQuery 1.9.0 dan oldin.

    url (standart: joriy sahifa).

    Turi: String.
    O'z ichiga olgan qator URL so'rov yuborilgan manzil.

    foydalanuvchi nomi.

    Turi: String.
    Kirish autentifikatsiya so'roviga javobda XMLHttpRequest bilan foydalaniladigan foydalanuvchi nomi HTTP.

    xhr (standart: ActiveXObject, mavjud bo'lganda ( Internet Explorer), boshqa hollarda XMLHttpRequest.

    Turi: Function() .
    XMLHttpRequest ob'ektini yaratish uchun qayta qo'ng'iroq qiling. Ushbu parametr yordamida siz XMLHttpRequest ob'ektini o'zingizning amalga oshirishingizni ta'minlash uchun bekor qilishingiz mumkin.

    xhrFields.

    Turi: PlainObject.
    XHR obyektiga oʻrnatiladigan maydon_nomi:maydon_qiymati juftliklarini oʻz ichiga olgan obyekt. Masalan, domenlararo so'rovlar kabi hisob ma'lumotlari yordamida yaratilishi kerakligini belgilashingiz mumkin cookie, avtorizatsiya sarlavhalari yoki TLS sertifikatlari: $.ajax(( url : "cross_domain_url ", // so'rov yuboriladigan manzil xhrFields : ( withCredentials: true // jQuery 1.5.1 + da qo'llab-quvvatlanadi ) ) );

Assalomu alaykum, aziz do'stim!

"Hayotdagi muvaffaqiyat siz uchun nimani anglatadi???"

Men sizdan o'ylab ko'rishingizni so'rayman, bir daqiqa to'xtang.

Mayli, endi sizga yordam beraman. Muvaffaqiyat bo'lmagan narsalar haqida oldingi nashrda yozgan edim. Keling, bu tushunchalarni darhol bekor qilaylik.

Muvaffaqiyat - bu ruhiy uyg'unlik.
Muvaffaqiyat - bu baxtli bo'lish.
Muvaffaqiyat - bu o'zingizni anglash va potentsialingizni ochishdir.
Muvaffaqiyat - bu hayotdagi to'liqlik.
Muvaffaqiyat - bu o'zingiz yoqtirgan, sizni yoritadigan narsa bilan shug'ullanish va siz buni kechayu kunduz qilishingiz mumkin.
Muvaffaqiyat - bu o'zingizni boshqalar uchun berish va bu dunyoni yaxshiroq joyga va boshqa odamlarni baxtli qilishdir.

Muvaffaqiyat ruhiy holat bilan chambarchas bog'liq. Bizning ruhimiz bu dunyoga zavq olish va o'zini anglash uchun kelgan va biz (ongimiz, tanamiz, ongimiz) buni qo'llab-quvvatlashimiz kerak. Qachonki, qalbimiz o'zini yaratib, amalga oshirsa, biz o'zimizni baxtli his qilamiz. Biz qalbimizning yaratilishi va qilayotgan ishimiz boshqa odamlarga katta foyda keltirishini his qilsak va ko'rsak, biz baxtni his qilamiz. Bu muvaffaqiyat deyiladi. Muvaffaqiyat - bu hayotning to'liqligi.

Qalbning har qanday qobiliyatlarini amalga oshirish faqat boshqa odamlar tufayli mumkin. Ruh o'zi uchun yaratmaydi. U boshqalar uchun yaratadi - ularga yordam berish va boshqalarning hayotini to'ldirish va ularga o'z baxtining bir qismini etkazish uchun. Baxtli odam o'z baxtining bir bo'lagini boshqalarga, baxtsiz odam o'z baxtsizligini boshqalarga etkazadi. Baxtsiz odamlardan qoching!

Agar to'satdan hamma odamlar bir zumda yo'q bo'lib ketsa, o'z-o'zini anglash imkonsiz bo'lib qoladi - kitob yozishning nima keragi bor, chunki ularni hech kim o'qimaydi, kiyimning yangi modellarini yaratishning nima keragi bor, chunki ularni hech kim kiymaydi, nima? Hech kim yashamaydigan yangi uylar qurishdan maqsad bormi?

Shubhasiz, bu hech qanday ma'noga ega emas.

Bu erda muvaffaqiyatning ikki tomonlama tabiati namoyon bo'ladi: ruh o'zini yaratadi va amalga oshiradi, shuningdek, boshqa odamlarning baxtli bo'lishiga yordam beradi.
Muvaffaqiyatning eng to'g'ri ta'rifi men berishi mumkin bo'lgan narsa shunday bo'lar edi: muvaffaqiyat - bu bizning dunyomizni yaxshiroq, mukammalroq va odamlarni baxtli qiladigan haqiqiy iste'dodlaringizni ro'yobga chiqarishdir.

Faqat o'zi uchun yashab, faqat o'zi uchun boylik to'playdigan insonlar baxtsiz ekanini chuqur tushunib olishingizni istardim. Ular bu boyliklarni ma’nosiz hayot natijasida hosil bo‘lgan ma’naviy bo‘shliqni to‘ldirish uchun yig‘adilar. Ammo bu bo'shliq faqat sevgi bilan to'ldirilishi mumkin, boshqa odamlarga qiymat keltiradi. Bu dunyoni yaxshiroq qilish uchun o'zini haddan tashqari ko'tarsa, ruh baxtlidir. Inson olamdan o‘tgandan keyin yig‘gan boyligidan nima keragi bor, chunki biz chidab bo‘lmasmiz. Ruh qiymat yaratish uchun keladi, o'zini anglaydi va keyin "uyga" qaytadi. Agar u bu qiymatni yaratmasa va boshqa biror narsa qilsa, u o'zini yomon his qiladi. U o'zini bu dunyoga kelgandek his qiladi va xohlaganini qilmaydi. Buning sababi bizning ongimiz - bu so'zni umumiy tushunishda "muvaffaqiyat" bilan ko'r bo'ladi. U xayolparastlikka intiladi va unga erishganida, umuman erishsa, erishgan narsasining ma'nosizligini tushunadi.

Umumiy tushunchada muvaffaqiyat nima?
- boylik (pul, moddiy narsalar)
- shon-shuhrat, kuch, mashhurlik
- holat

Ammo qarang, hammasi egodan kelib chiqadi. Inson o'z ahamiyatini his qilishni xohlaydi, lekin boylik, shon-shuhrat, mavqe - bu illyuziya ekanligini tushunmaydi. Ular dengiz suviga o'xshaydi, uni qancha ichsang ham chanqog'ingni qondira olmaysan. Shuning uchun odamlar butun hayotini ularni ta'qib qilish bilan o'tkazadilar. Shuncha pul topaman va baxtli bo'laman, yiliga 100 000 dollar daromadga erishaman, keyin xursand bo'laman, sahnaga chiqib qo'shiq aytsam, baxtli bo'laman, deb o'ylashadi. turmushga chiqaman, farzandli bo'laman... Siz buni tekshirib ko'rishingiz mumkin, lekin men 100% ishonch bilan aytishim mumkinki, siz baxtli bo'lmaysiz. Bundan tashqari, sizning baxt darajangiz yanada past bo'ladi. Siz o'z da'vatingizdan uzoqlashasiz va buni anglab, ruh yanada baxtsiz bo'ladi. Qanchalik ko'p boylik, shon-shuhrat, mavqega ega bo'lsangiz, ong hayotni qanchalik ko'p nazorat qiladi va ruhning roli uzoqlashadi. Lekin haqiqiy baxt qalbdan keladi!!!

Muvaffaqiyat - bu ruh va aql o'rtasidagi uyg'unlik. Aqlning roli - bu Yordam o'z-o'zini anglash uchun ruh. Bizning ustuvorliklarimiz noto'g'ri. Biz qisqa umrga ega bo'lgan tanani va moddiy narsalarni birinchi o'ringa qo'yamiz va o'lmas ruh va bitmas-tuganmas boylikni oxirgi o'ringa qo'yamiz. Muqaddas Kitobda shunday deyilgan: «O'z boyligingizni yerda emas, osmonda to'plang». Bizning tanamiz ruh uchun vositadir. Ruh Oliy ong bilan bog'langan va faqat u bu dunyo uchun nima kerakligini tushunishga qodir. Koinot o'z yo'lidan yuradigan odamlarga yordam beradi. Sizning yo'lingiz eng kam energiya sarflaydi va bizning dunyomizda hamma narsa eng kam qarshilik yo'li bo'ylab oqadi. Men har doim aytamanki, muvaffaqiyat - bu oddiy voqealar. Muvaffaqiyatsizlik - bu normadan chetga chiqish. Agar hozir siz xohlagan darajada muvaffaqiyatga erisha olmasangiz, demak, siz o'zingiz xohlagan narsani qilmayapsiz. Ruh va aql kelishmovchilikda. Va bu kelishmovchilik qanchalik katta bo'lsa, odam shunchalik baxtsiz bo'ladi.

Lekin odamga moddiy narsalar kerak emas, deyapman, deb o'ylamang. Bu juda zarur. Buning sababi ham: odamning puli bo‘lmasa, ishga borib, qandaydir “ahmoqlik” qilishga majbur bo‘ladi. Inson pul topish uchun kuniga 10 soat vaqt sarflaydi, lekin bu bilan u o'zini anglamaydi. Rahbar - bu sizning hisobingizdan o'zini anglaydigan odam. (Ko'p hollarda nima sodir bo'lishini aytaman. Ko'pchilik o'z ishlaridan nafratlanadi, lekin ular yashash uchun pul kerak bo'lgani uchun ishlaydi).

Moddiy narsalar ruh uchun qulaylik yaratadi. Moddiy narsalar bu dunyoni ruh uchun tartibga soladi. Ruhni ilhomlantiradigan joylarda durdona asarlar yaratish juda yoqimli. Dengiz bo'yidagi uydagi rasmni "axlatxonaga" bo'yashdan ko'ra yaxshiroqdir. Yaratish uchun ruh tinchlik va tasalliga muhtoj. Ammo oilada pul etarli bo'lmasa va har kuni er va xotin bu haqda janjallashsa, qanday tinchlik bo'lishi mumkin.

Ruhga o'zini namoyon qilish uchun vaqt kerak. Biroz vaqt o'tgach, ruh tomonidan yaratilgan qiymat odamning ish joyida oladiganidan yuzlab, hatto minglab marta ko'proq sotilishi va sotilishi mumkin. Ammo bunday qiymatni yaratish uchun vaqt kerak. Shaxsan menga ozgina daromad olishim uchun 5 oy kerak bo'ldi. 8 oydan keyin mening saytim kambag'al oila allaqachon yashashi mumkin bo'lgan daromad keltira boshladi. Va faqat 17 oydan keyin mening saytim daromad keltira boshladi, bu allaqachon juda yaxshi maoshli ishdan daromad o'rnini bosadi.

Ishni almashtirish uchun 17 oy kerak bo'ldi. Ammo endi men ozodman! Men sevgan ishimni qilyapman va bu hali boshlanishi. Mening orzularimning chegarasi yo'q, demak, men uchun chegara yo'q. O'z biznesingizni yuritganingizda, daromadingiz faqat tasavvuringiz bilan chegaralanadi va boshqa hech narsa yo'q. Kim ish joyida yiliga 1 000 000 dollar ishlab topadi? Ha, ehtimol bir nechtasi bor. Ammo o'z biznesingiz bilan shug'ullansangiz ham, bu ibodatxona emas.
Moddiy narsalar muhim, lekin faqat hayot ehtiyojlarini qondirish uchun.

Rostini aytaman: daromad olmasdan, eng yaxshi asarlar yaratish va yaratish qiyinroq. Aql doimo shunday deydi: "Siz qilayotgan ish yaxshi, lekin biz nima uchun yashaymiz?" Va bu savol doimo va juda ijodkorlikdan chalg'itadi. U bizning baxtimizni tortib oladi. Ushbu dialogni o'chirish uchun sevimli mashg'ulotingiz pul olib kelishi kerak. Albatta, keyin ong boshqa savollarni berishni boshlaydi, lekin sizning sevimli biznesingiz qancha ko'p pul olib kelsa, bu savollar kamroq og'riqli va chalg'ituvchi bo'ladi.

Ko'pincha odamlar ishda ishlaydi, pul topadi, lekin sevimli mashg'ulotlariga ham ega. Xobbi nima?
Xobbi - bu daromad keltirmaydigan ruh uchun mashg'ulot. Lekin nima uchun sevimli mashg'ulotni ishga aylantirmaslik kerak? Eng baxtli insonlar sevimli mashg'uloti o'z ishi bo'lganlardir. Ular tinimsiz sevgan ishini qiladilar.
Men ish haqida, pul haqida gapiradigan hamma narsa, men sizga ikkita muhim fikrni aytmoqchiman: 1) Ruh va aql uyg'un bo'lishi kerak.
2) Nomoddiy narsalar har doim birinchi o'rinda turishi kerak

E'tibor faqat nomoddiy narsalarga qaratilishi kerak! Natijada moddiy narsalar paydo bo'ladi. Bu erda to'g'ri hayot ustuvorliklari:
baxt -> sog'lik -> boylik Va ko'p odamlar sxema bo'yicha yashaydilar
boylik-> salomatlik-> baxt
Va eng yomoni, sxema bo'yicha yashaydigan odamlar bor
boylik-> boylik-> boylik

Ular baxtli emasligi ajablanarli emas. Bu odamlarning millionlari bor, lekin ularning do'stlari yo'q, ularning oilasida muammolar bor. Ular odamlar bilan munosabatlarda muammolarga duch kelishadi. Chunki ular o'zlarini o'rab turgan barcha odamlar faqat pullari uchun va boshqa hech narsa tufayli ular bilan birga deb o'ylashadi. Siz haqingizda bilmayman, lekin men bunday baxtni xohlamagan bo'lardim. Hayotdagi ustuvorliklar to'g'ri belgilansa, natijada boylik paydo bo'ladi. Unga e'tibor qaratishdan foyda yo'q. Yuqori darajadagi baxt va salomatlik muqarrar ravishda yuqori daromadga olib keladi.

Moddiy narsalar va boyligimiz faqat baxtimizga qo'shimcha bo'lishi mumkin. Ular asos bo'lib xizmat qila olmaydi. Biz yuqorida poydevor nima ekanligini muhokama qildik.

Stepan Ovchinnikov, INTERVOLGA

Kompaniya: INTERVOLGA
Tashkil etilgan yili: 2003 yil
Hamkor maqomi: Oltin, yirik ilovalar uchun tavsiya etilgan kompaniyalar ro'yxati
1C-Bitrix bilan necha yil: 7 yil
Mutaxassislik: texnologik jihatdan murakkab veb-saytlar, onlayn-do'konlar, korporativ portallar, shaxsiy hisoblar.

Yutuqlari:

  • 2011 yildan beri har yili Janubiy Federal okrugida birinchi
  • Biz 1C-Bitrix tomonidan katta ilovalar uchun tavsiya etilgan kompaniyalar ro'yxatidamiz
  • Biz kuniga 800 kishigacha bo'lgan trafik bilan veb-ishlab chiqish va internet-marketing haqida tematik blog yuritamiz
  • Korxonada 50 kishi ishlaydi
To'g'ri strategiya va texnologiyani tanlash tufayli o'sishga muvaffaq bo'lgan kichik mintaqaviy kompaniyaning hikoyasi.

Kompaniya 2003 yilda veb-texnologiyalar va rivojlanish bilan hech qanday aloqasi bo'lmagan volgogradlik huquqshunos tomonidan tashkil etilgan. Unga yaxshi saytlar, ma'lumotnomalar tizimi yo'qdek tuyuldi. U mintaqaviy yordam tizimini yaratish va kelajakda boshqa loyihalar ustida ishlash uchun veb-studiya yaratdi.

2005 yilga kelib, men ish boshlaganimda, Intervolga yuzdan ortiq veb-saytlarni yaratdi. Albatta, ular bugungi standartlarga ko'ra ibtidoiy edi. Biz boshqa sohalarni sinab ko'rdik. Biz internet-marketing qilmadik, faqat SEO.

2006 yilda men tijorat direktori bo'ldim. Dastlabki bir necha yil davomida biz boshlagan ishimizni davom ettirdik - Volgograd veb-saytlarini ishlab chiqish. O'shanda chet ellik mijozlar yo'q edi.

2009-2010 yillarda kompaniyada uzoq davom etgan iqtisodiy inqiroz boshlanishi bilan bir vaqtga to'g'ri keladigan katta o'zgarishlar yuz berdi. Men vakolat berishni boshladim. Ilgari barcha loyihalarni o‘zim boshqarganman.

Ilgari kompaniyada bitta dasturchi bor edi, u ikkita menejerning topshiriqlarini qayta ishlagan va bu biz uchun etarli edi. Dasturchilarni almashtirish shunday bo'ldi: bir yoki ikki yil davomida ishladi va ketishdi va har safar biz kod madaniyatini o'zgartirdik. Men dasturchini almashtirish katta muammo ekanligini angladim. Taxminan o'sha paytda Sergey Rijikov bilan suhbat bo'lib o'tdi. U so'radi: "Nega 1C-Bitrix-da yozmayapsiz?"


Kuluçka muddati taxminan bir yil davom etdi - biz bir vaqtning o'zida eski dasturiy ta'minot kodimiz, 1C-Bitrix va UMI yordamida veb-saytlarni yaratdik. Biz faqat ushbu platforma bilan ishlashga qaror qilishimizdan oldin 1C-Bitrix-da olti-sakkizta veb-sayt yaratdik. Keyin boshqa dasturchilarni yollash imkoniyati paydo bo'ldi va 2010 yilda kompaniyada ulardan ikkitasi bor edi. Va keyin biz u bilan shug'ullanishni o'rgandik va striming ishini yo'lga qo'ydik.

Shunga ko'ra, xizmatlar tuzilmasi o'zgardi. Ilgari biz oddiy veb-saytlarni yaratdik, hatto buyurtma savati va avtorizatsiyasi bo'lgan onlayn-do'kon ham biz uchun texnik jihatdan qiyin ish edi.

Seminarlarda men odamlarga onlayn-do'kon kerak emasligini tushuntirdim, shunchaki buyurtma shakli bo'lgan katalog etarli. Men buni faqat murakkab vazifalarda yomon bo'lganimiz uchun qildim. Keyin biz hamma narsani 1C-Bitrix-dan olishingizni va hamma narsani o'zingiz qilishingizni bilib oldik.

Mutaxassislik haqida

Biz Shellning mintaqaviy distribyutori uchun yirik onlayn-do'kon yaratdik. Ularning ma'lumotlar bazasi nazariy jihatdan ularning tarkibiy qismlari bilan jihozlanishi mumkin bo'lgan barcha transport vositalarining ma'lumotlar bazasi bilan birlashtirilgan. Bular bir necha ming turdagi uskunalar bo'lib, ularning har biri tegishli Shell mahsulotlari bilan taklif etiladi.

Biz tanlov shaklini yaratdik. Bu muammo texnikdir - bu dasturchilardan yechim talab qiladi, lekin biz 1C-Bitrix bilan ishlaganimizda, biz aynan shu muammoni hal qilamiz. Va agar biz o'z kodimizda yozishni davom ettirsak, biz 1C-Bitrix-da allaqachon mavjud bo'lgan standart vazifalarni hal qila olmaymiz - masalan, "Savat", "Qidiruv", "To'lov", "1C" bilan integratsiya va boshqalar. . Endi biz to'g'ridan-to'g'ri nostandart narsalar ustida ishlayapmiz.

Bizda kuchli loyihalardan biri - “Alfa Bank mijozlar klubi” bor. Biz buni 1C-Bitrix-da "bank-mijoz" avtorizatsiya plaginidan foydalanib qilamiz. Ushbu sayt 1C-Bitrix ma'lumotlar bazasidan foydalanmaydi - u mijozning saqlash vositalari bilan maxsus APIlar orqali birlashtirilgan va u yerdan ma'lumotlarni oladi.

Bu yilgi eng zo'r loyiha - EVRAZ mijozlari uchun shaxsiy hisob. Uni qanday qilganimiz va tashkil qilganimizni blogda batafsil bayon qildik.

Platforma sifatida 1C-Bitrix uchun ko'plab savollar va istaklarimiz bor, ammo biznes nuqtai nazaridan bu sehrli hap.

Mijozlarning ishonchi haqida

Men bizning yo'limizni yagona to'g'ri deb o'ylamayman, lekin biz har doim yaxshi ish qilishga harakat qilganmiz. Siz oddiy loyihani qabul qilasiz, uni sekin, lekin yaxshi bajaring. Asta-sekin siz yuqori darajaga erishasiz va odamlar sizni payqashadi. Siz yangi buyurtmalarni qabul qilyapsiz.

Rijikov bizni - mikroskopik, bechora mintaqaviy studiyani qanday payqadi? Men Habré haqida o'nlab maqolalar yozdim, bu bizni e'tiborga oldi. Alfa Bank bizga to'g'ridan-to'g'ri savol bilan murojaat qildi: "Nega siz juda chiroyli va aqlli yigitlar, bizning tenderimizda ishtirok etmaysizlar?" Va biz ishtirok etdik.

Biz ommaviy ravishda reklama qila olmaymiz, qizg'in yetakchilarni qo'lga kirita olmaymiz va loyihani tezda yakunlay olmaymiz. Biz avvalgilaridan bir yarim baravar murakkabroq va kattaroq loyihalarni qabul qilmaymiz. Biz hali tayyor bo'lmagan sifat jihatidan farqlar bo'lishini tushunamiz. Shuning uchun biz sekin rivojlanmoqdamiz.

Biz loyihalarning murakkabligini odam-soatda hisoblaymiz. Biz loyihani tezda baholashimiz mumkin - bir yoki ikki ish kuni. "Murakkab do'kon" deb nomlangan o'lchov birligi mavjud - 700–800–1000 soatlik ish. Ikki yoki undan ortiq "murakkab do'konlar" bo'lishi mumkin.

Biz aylanma echimlardan foydalanmaymiz - bundan qanday qilib pul ishlashni tushunmadik. Shuning uchun biz faqat autsorsing asosida ishlaymiz - biz individual mijozlar uchun o'zimizni qilamiz.

Biz Volgogradda uchta raqobatdosh elektr asboblari do'konini ochgan davrimiz bor edi. Bunday o'ziga xos loyihalar bugungi kunda ham mavjud, masalan, Siemens, ABB, Schneider Electric sanoat elektronikasi onlayn-do'koni. Ularning dilerlari juda ko'p va hamma ajoyib onlayn-do'konni xohlaydi.

Ba'zida mijozlar bizga to'da bo'lib kelishadi: ularga bitta sayt yoqdi va hamma bir xil saytni xohlaydi. Lekin biz hamma bilan kelishuvga erishamiz. Aylanma biz uchun emas.

Biz bozor uchun bir nechta modullar yaratdik. Ular juda oddiy, ular soddaligi tufayli o'zlari uchun ko'p marta to'lashdi: biz 20-30 soatlik ish uchun sarmoya kiritdik va bu modulni 100 marta sotdik.

O'zingizni qanday e'lon qilish kerak

2009 yildan beri biz har yili, ba'zan esa yiliga bir necha marta - o'zimiz va 1C-Bitrix bilan birgalikda seminarlar o'tkazamiz. Birinchi o‘n marta qildim, keyin bo‘lim boshliqlaridan biri qildi. Hozir jamoada liniya menejeri bor, u seminarlarga jalb qilingan.

Biz deyarli barcha dasturlar, reytinglar va sifat monitoringida ishtirok etamiz. Biz ko'proq yoki kamroq sezilarli ish haqida ishlarni yozamiz. Bizning saytimiz Bitrix24 va, ehtimol, 1C-Bitrix: Sayt boshqaruvi bo'yicha eng ko'p ma'lumotlarga boy hamkorlarimizdan biri ekanligidan faxrlanaman.

Nega buni qilyapmiz? Bu bizning darajamizni oshiradi. Biz bajarilgan ishlar haqida o'ylaymiz va uni maqolaga joylashtiramiz. Bu PR - odamlar o'qiydilar.

Biz bo'sh vaqtimizda xizmat ko'rsatadigan Intervolga veb-sayti kuniga 800 kishiga tashrif buyuradi va ularning 80% past chastotali so'rovlardir. Ya'ni, 250 ta maqoladan iborat blogga kuniga 650 ga yaqin kishi tashrif buyuradi. Biz jurnalist emasmiz, lekin maqolalar yaxshi trafik olib keladi.

Men 1C-Bitrix stendidagi ko'rgazmalarda bir necha bor qatnashganman. Ko‘rgazmalarda o‘zimiz ham qatnashganmiz. To‘g‘risini aytsam, ulardan biroz ko‘nglim to‘ldi – ular mijozga ham, PR ham berishmaydi, shunchaki gaplashishadi. Agar siz odamlarning fikrini bilmoqchi bo'lsangiz, ko'rgazmalarda qatnashing.

Bir paytlar shunday holatga duch kelganman: ikki kun ichida 172 kishi bilan gaplashganman. Kun oxiriga kelib, bir gapni ham tugata olmasligimni angladim. Ammo aniq vazifalar haqida gapirish savdoga olib kelmaydi, shuning uchun biz endi ko'rgazmalarga bormaymiz.

Lekin biz har qanday seminar yoki ommaviy tadbirlarni yaxshi ko'ramiz, unda siz gapirishingiz va yaxshi narsalarni aytib berishingiz mumkin. Biz bepul tomosha qilamiz, faqat Moskvaga chiptalar xarajatlari. PR uchun barcha imkoniyatlardan foydalanishga harakat qilamiz.

Agar kompaniya raqobatchilar tomonidan ilgari surilganda foydali bo'ladi - biz ko'pincha Bitrix24 ni amalga oshirish uchun tavsiya etiladi. Ammo o'zingizni mijozlar orasida targ'ib qilish yaxshiroqdir va siz ularni boshqa joydan olishingiz kerak. Shu maqsadda biz ixtisoslashtirilgan texnik ko'rgazmalarda qatnashdik - masalan, Tolyattidagi "MetalExpo", "Avtomobil komponentlari".

Haqiqatan ham shudgorlanmagan mijozlar maydoni mavjud, ammo muammo shundaki, bular "sovuq" yo'nalishlardir. Ular nimani xohlashlarini tushunishmaydi. Ularni sotuvga chiqarish uchun siz har biri bilan bir yil davomida muloqot qilishingiz kerak. Ammo biz bunga tayyor emasmiz, biz "iliq"larni afzal ko'ramiz. Biz ularni kontent marketingi orqali olamiz.

Bu biz foydalanadigan deyarli yagona marketing usuli: biz maqolalar yozamiz, ishlarni yozamiz, odamlarni jalb qilamiz va so'rovlarni qabul qilamiz - ish kuniga uchdan beshgacha. Yangilari. Bu juda ko'p, ularni qayta ishlash juda qiyin.

Maslahat

Siz har doim narxlarni oshirishga harakat qilishingiz kerak. Bir nuqtada bozor sizga narxlarni ko'tara olmasligingizni aytadi, lekin siz davom etishingiz kerak. Infratuzilmani tartibga keltiring, yo'qotishlarni kamaytiring, ish samaradorligini oshiring. Endi biz hali ham ko'lamli iqtisodlarga duch kelamiz. Bizda 50 dan ortiq odam ishlaydi va bunday katta jamoa tartibsizlikda bo'lishi mumkin emas.

Ichkarida siz ishlab chiqarish imkoniyatlarini, odamlarning malakasini kuzatishingiz, dasturchilar uchun kurashishingiz, ish haqini oshirishingiz kerak - kompaniya parchalanib ketmasligiga ishonch hosil qiling.

Aleksey Saminskiy, maslahatchi, buni odatda juda qattiq ifodalaydi:

“Agar sizda yo‘qotishlarga olib keladigan muammolar bo‘lsa yoki ish uslubingizdan norozi bo‘lsangiz, avvalo narxlarni 40 foizga oshirishingiz, so‘ng 40 foiz odamlarni ishdan bo‘shatib, shundan keyingina sifat masalalarini hal qilishingiz kerak. Agar buni teskari qilsang, albatta o'lasan».

Psixologik inertiya ko'pincha to'sqinlik qiladi. Ikki marta loyihalarni qabul qildim, o'sha paytda ularning miqdori shunchalik katta tuyulardiki, bu pul uchun hamma narsani qilish mumkin edi. Siz qilayotgan ishingizga etarlicha qarashga imkon bermaydigan psixologik munosabat xavflidir.

2009 yilda ish boshlaganimda, Intervolga-dagi veb-saytning asosiy narxi 11-16, ehtimol 20 ming rubl edi. Bu dizayn, kod, CMS, ko'rsatmalar, boshqaruv bilan veb-sayt edi - 20 ming rubl uchun. Agar o'sha paytda o'rtacha daraja 15 ming rubl bo'lsa, endi saytlar 10-20 baravar qimmatga tushadi. Bu biz hozir yaratayotgan onlayn-do'konlar uchun minimal standartdir. "Tijorat" bo'yicha - 150, buyurtma bo'yicha - 350 ming.

Psixologik cheklovlar ko'pchilikni kecha qilmagan ishni qilishiga to'sqinlik qiladi. Men ulardan farqim yo‘q deb o‘ylayman. Men doimo o'zimda keyingi qadamni qo'yishga xalaqit beradigan bloklarni topaman. Men aqlli odamlar bilan gaplashib, ularni doimo olib tashlashga harakat qilaman. Ichki to'siqlarni olib tashlash va xabardorlik darajasini oshirish kerak.

). Bulut turli xil PHP skriptlarini jadval bo'yicha yoki API orqali ishga tushirish uchun mo'ljallangan. Qoida tariqasida, bu skriptlar navbatlarni qayta ishlaydi va yuk taxminan 100 ta serverga "tarqaladi". Ilgari biz nazorat mantig'i qanday amalga oshirilayotganiga e'tibor qaratgan edik, bu yukni shunday sonli serverlar bo'ylab bir xilda taqsimlash va jadvalga muvofiq vazifalarni yaratish uchun javobgardir. Ammo, bunga qo'shimcha ravishda, biz CLI-da PHP skriptlarimizni ishga tushiradigan va ularning bajarilishi holatini kuzata oladigan demon yozishimiz kerak edi.

U dastlab kompaniyamizdagi boshqa jinlar kabi C tilida yozilgan. Biroq, biz protsessor vaqtining muhim qismi (taxminan 10%) asosan behuda ketganiga duch keldik: tarjimonni ishga tushirish va ramkamizning "yadrosini" yuklash. Shuning uchun, tarjimonni va bizning ramkamizni faqat bir marta ishga tushirish imkoniyatiga ega bo'lish uchun PHP daemonini qayta yozishga qaror qilindi. Biz uni Php deb nomladik tosh syd (Phproxyd-ga o'xshash - PHP Proksi Demoni, bizda ilgari bo'lgan C demoni). U alohida sinflarni ishga tushirish so'rovlarini qabul qiladi va har bir so'rov bo'yicha fork() qiladi, shuningdek, har bir ishga tushirishning bajarilish holati haqida xabar berishi mumkin. Ushbu arxitektura ko'p jihatdan Apache veb-server modeliga o'xshaydi, barcha ishga tushirish "master" da bir marta amalga oshirilganda va "bolalar" so'rovni qayta ishlash bilan shug'ullanadi. Qo'shimcha bonus sifatida biz CLI-da opcode keshini yoqish imkoniyatiga ega bo'lamiz, bu to'g'ri ishlaydi, chunki barcha bolalar asosiy jarayon bilan bir xil umumiy xotira maydonini meros qilib oladi. Ishga tushirish so'rovini qayta ishlashda kechikishlarni kamaytirish uchun siz fork() ni oldindan qilishingiz mumkin (prefork modeli), ammo bizning holatlarimizda fork() uchun kechikishlar taxminan 1 ms ni tashkil qiladi, bu bizga juda mos keladi.

Biroq, biz kodni tez-tez yangilab turganimiz sababli, bu xizmat tez-tez qayta ishga tushirilishi kerak, aks holda unga yuklangan kod eskirib qolishi mumkin. Chunki har bir qayta ishga tushirish kabi ko'plab xatolar bilan birga bo'ladi ulanish tengdosh tomonidan qayta tiklandi, shu jumladan oxirgi foydalanuvchilarga xizmat ko'rsatishni rad etish (demon nafaqat bulut uchun, balki saytimizning bir qismi uchun ham foydali), biz allaqachon o'rnatilgan ulanishlarni yo'qotmasdan demonni qayta ishga tushirish yo'llarini izlashga qaror qildik. Buning uchun ishlatiladigan bitta mashhur texnika mavjud chiroyli qayta yuklash demonlar uchun: fork-exec bajariladi va tinglash rozetkasidan deskriptor bolaga uzatiladi. Shunday qilib, yangi ulanishlar demonning yangi versiyasi tomonidan qabul qilinadi va eskilari eski versiya yordamida "o'zgartiriladi".

Ushbu maqolada biz yanada murakkab variantni ko'rib chiqamiz. chiroyli qayta yuklash: Eski ulanishlar demonning yangi versiyasi tomonidan ishlov berishda davom etadi, bu bizning holatlarimizda muhim, chunki aks holda u eski kodni ishga tushiradi.

Nazariya Keling, avval o'ylab ko'raylik: biz erishmoqchi bo'lgan narsa mumkinmi? Va agar shunday bo'lsa, bunga qanday erishish mumkin?

Demon POSIX-mos keluvchi Linux-da ishlayotganligi sababli biz uchun quyidagi imkoniyatlar mavjud:

  • Barcha ochiq fayllar va rozetkalar ochiq deskriptor raqamiga mos keladigan raqamlardir. Standart kirish, chiqish va xato oqimi mos ravishda 0, 1 va 2 deskriptorlariga ega.
  • Ochiq fayl, rozetka va quvur o'rtasida sezilarli farqlar yo'q (masalan, siz o'qish/yozish va tizim qo'ng'iroqlarini sendto/recvfromdan foydalanib rozetkalar bilan ishlashingiz mumkin).
  • Fork() tizimi chaqiruvi bajarilganda, barcha ochiq tutqichlar ularning raqamlari va o'qish/yozish pozitsiyalarini (fayllarda) saqlagan holda meros qilib olinadi.
  • execve() tizimi chaqiruvi bajarilganda, barcha ochiq tutqichlar ham meros qilib olinadi va qo'shimcha ravishda jarayonning PID-kodi saqlanib qoladi va shuning uchun uning bolalari bilan bog'lanadi.
  • Ochiq jarayon identifikatorlari ro'yxati Linuxda /proc/self/fd ga simli havola bo'lgan /dev/fd katalogida mavjud.
  • Shunday qilib, bizning vazifamiz ko'p harakat qilmasdan bajarilishi mumkinligiga ishonish uchun barcha asoslarimiz bor. Shunday qilib, keling, boshlaymiz.PHP uchun yamoqlar Afsuski, bizning ishimizni murakkablashtiradigan bitta kichik tafsilot bor: PHP da oqimlar uchun fayl deskriptor raqamini olish va fayl deskriptorini raqam bo'yicha ochish (o'rniga, fayl nusxasi) yo'q. deskriptor ochildi, bu bizning xizmatimiz uchun mos emas, chunki biz qayta ishga tushirish paytida va bolalar jarayonlarini boshlashda sizib chiqmaslik uchun ochiq tutqichlarni diqqat bilan kuzatib boramiz).

    Birinchidan, oqimdan fd olish imkoniyatini qo'shish va fopen(php://fd/) dastakning nusxasini ochmasligiga ishonch hosil qilish uchun PHP kodiga bir nechta kichik yamoqlar yaratamiz (ikkinchi o'zgartirish). joriy PHP xatti-harakati bilan mos kelmaydi, shuning uchun uning o'rniga yangi "manzil" qo'shishingiz mumkin, masalan, php://fdraw/):

    Yamoq kodi

    diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c indeks f8d7bda..fee964c 100644 --- a/ext/standard/php_fopen_wrapper.c +++ b/ext_fopen_wrapper.c +++ b/ext_fopen_wrapper/phrap. c @@ -24,6 +24,7 @@ #agar_UNISTD_H bo'lsa #include #endif +#include #include "php.h" #include "php_globals.h" @@ -296,11 +297,11 @@ php_stream * php_streamp_urwrp ( *path, ch "Fayl deskriptorlari manfiy bo'lmagan raqamlar %d dan kichik bo'lishi kerak", dtablesize); NULLni qaytarish; ) - - fd = dup(fildes_ori); - if (fd == -1) ( + + fd = fildes_ori; + if (fcntl(fildes_ori, F_GETFD) == -1) ( php_stream_wrapper_log_error(wrapper, TSRMLS_CC opsiyalari, - "%ld fayl identifikatorini takrorlashda xatolik yuz berdi; ehtimol shunday emas. 't "mavjud: " + "Fayl identifikatori %ld yaroqsiz: " "[%d]: %s", fildes_ori, errno, strerror(errno)); return NULL; ) diff --git a/ext/standard/ streamsfuncs.c b/ext/standard/streamsfuncs.c indeks 0610ecf..14fd3b0 100644 --- a/ext/standard/streamsfuncs.c +++ b/ext/standard/streamsfuncs.c @@ -24,6 @ +24,7 @ "ext/standard/flock_compat.h" #include "ext/standard/file.h" #include "ext/standard/php_filestat.h" +#include "ext/standard/php_fopen_wrappers.h" #include "php_open_temporary_file .h" " #include "ext/standard/basic_functions.h" #include "php_ini.h" @@ -484,6 +485,7 @@ PHP_FUNCTION(stream_get_meta_data) zval *arg1; php_stream *stream; zval *newval;_fd ; agar (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &arg1) == FAILURE) (qaytish; @@ -502.6 +504.9 @@ PHP_FUNCTION(stream_get_meta_data) add_assoc_string(return_NUM_ARGS()), (stream_value) o'rash->wops->yorliq, 1); ) add_assoc_string(qaytish_qiymati, "stream_type", (char *)stream->ops->label, 1); + agar (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD_FOR_SELECT | PHP_STREAM_CAST_INTERNAL, (void*)&tmp_fd, 1) && tmp_fd != -1) ( + add_assoc_long(returnf_)(ad_assoc_long, "mp_fd__), turn_value, "rejim ", oqim->rejimi, 1);


    Biz fd maydonini stream_get_meta_data() tomonidan qaytarilgan natijaga qo'shdik, agar u mantiqiy bo'lsa (masalan, zlib oqimlari uchun fd maydoni mavjud bo'lmaydi). Shuningdek, biz o'tkazilgan fayl deskriptoridan dup() chaqiruvini oddiy tekshirish bilan almashtirdik. Afsuski, bu kod Windowsda oʻzgartirishlarsiz ishlamaydi, chunki fcntl() qoʻngʻirogʻi POSIX-ga xos boʻlgani uchun toʻliq patch boshqa OTlar uchun qoʻshimcha kod tarmoqlarini oʻz ichiga olishi kerak.Qayta ishga tushirish imkoniyati boʻlmagan demon Avvaliga kichik server yozamiz. JSON formatidagi so'rovlarni qabul qilish va qandaydir javob berish imkoniyatiga ega bo'ladi. Masalan, so'rovda kelgan massivdagi elementlar sonini qaytaradi.

    Demon 31337 portni tinglaydi. Natija shunday bo'lishi kerak:

    $ telnet localhost 31337 127.0.0.1 sinab ko'rilmoqda... Localhostga ulangan. Escape belgisi "^]". ("xesh":1) # foydalanuvchi kiritdi "So'rovda 1 ta kalit bor edi" ("xesh":1,"cnt":2) # foydalanuvchi kiritdi "So'rovda 2 ta kalit bor edi"

    Portda tinglashni boshlash uchun stream_socket_server() va qaysi tutqichlar o'qish/yozishga tayyorligini aniqlash uchun stream_select() dan foydalanamiz.

    Oddiy dastur kodi (Simple.php)



     


    O'qing:



    isnull() funksiyasidan foydalanish

    isnull() funksiyasidan foydalanish

    27.06.2017 1C so'rovlarida NULL, ISNULL() va IS NULL So'rov natijasida NULL NULL nima qiymat yo'qligini bildiradi (bu bo'sh emas...

    Pedagogik vaziyatlarga oid keyslar Pedagogika fanidan keys topshiriqlari

    Pedagogik vaziyatlarga oid keyslar Pedagogika fanidan keys topshiriqlari

    ROSSIYA TA'LIM VA FAN VAZIRLIGI "Xakass davlati" oliy kasbiy ta'lim federal davlat ta'lim muassasasi ...

    Pratchett qo'riqchisi. (S. Juzhunava tomonidan tarjima qilingan, A. Jikarentsev tahririda) fb2 yuklab olish. Kitobdan iqtiboslar "Qo'riqchilar! Soqchilar! Terri Pratchett

    Pratchett qo'riqchisi.  (S. Juzhunava tomonidan tarjima qilingan, A. Jikarentsev tahririda) fb2 yuklab olish.  Kitobdan iqtiboslar

    2-fevral, 2017-yil Soqchilar! Soqchilar! Terri Pratchett (Hozircha reytinglar yo'q) Sarlavha: Qo'riqchi! Soqchilar! Muallif: Terri Pratchett Yil: 1989 Janr: Xorijiy...

    1s buxgalteriya hisobidagi nomenklatura 8

    1s buxgalteriya hisobidagi nomenklatura 8

    Buxgalteriya hisoblari qayerda o'zgaradi (1C Buxgalteriya 8.3, nashr 3.0) 2016-12-08T11:33:27+00:00 Buxgalterlar mendan qayerda... haqida so'rashadi.

    tasma tasviri RSS