Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Duży plik z danymi Autocomplete
rafiksq
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Mam pewną stronę zamienie-nieruchomosc.pl z polem autouzupelniania. Niestetyplik data zajmuje 0.5MB przez co na urzadzenia mobilnych sugestia trwa przynajmniej 15sek.

data:
view-source:http://pisipolska.home.pl/zamienie_nowa/plugins/autocom/data.js

kod:
view-source:http://pisipolska.home.pl/zamienie_nowa/plugins/autocom/demo.js


Czy jest jakiś sposób optymalizacji ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Autocomplete dla tak duzysz danych ma szukac danych w bazie danych i zwracac tylko to co znajdzie w bazie. Wowczas to dziala migusiem
Go to the top of the page
+Quote Post
rafiksq
post
Post #3





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Ale przy każdej wpisywanej literce musi łaczyć się z bazą i wyszukiwać ponownie? Jest jakiś konkretny schemat działania ?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale przy każdej wpisywanej literce musi łaczyć się z bazą i wyszukiwać ponownie?
Dokladnie tak.
Schemat dzialania? Sciagnij sobie jakis normalny autocmplete, np. jQuery UI autocomplete i rob jak podali w przykladach
Go to the top of the page
+Quote Post
kapslokk
post
Post #5





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Przy każdej literce ajax pyta skryptu, co znalazl w bazie. Skrypt robi zapytanie do bazy i wypluwa jsona. Ot cała technika.

https://daveismyname.com/autocomplete-with-...nd-jquery-ui-bp

Ten post edytował kapslokk 20.11.2015, 10:58:01
Go to the top of the page
+Quote Post
rafiksq
post
Post #6





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Dzieki za szybkie odpowiedzi.

Czyli wpisujemy 'a' - ajax pobiera wszystkie słowa na 'a', zapisuje do jsona i wyswietla w inpucie.
wpisujemy aug - ajax pobiera wszystkie słowa na 'aug', zapisuje do jsona i wyswietla w inpucie.

tak?
Go to the top of the page
+Quote Post
Pyton_000
post
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


tak

http://stackoverflow.com/questions/5905560...-remote-example

Ten post edytował Pyton_000 20.11.2015, 11:06:47
Go to the top of the page
+Quote Post
rafiksq
post
Post #8





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Dzięki wszystkim za pomoc, problem rozwiązany.

Jednak nie działa (IMG:style_emoticons/default/sad.gif) na moim lokalnym serwerze websev wszystko ok a na home.pl niestey jak zwykle lipa (IMG:style_emoticons/default/sad.gif) ((
zamienie-nieruchomosc.pl

Problem polega na tym, że stronę mam na home.pl

link bezposredni do katalogu ze stroną to:
pisipolska.home.pl/zamienie_nowa - tu działa
zamienie-nieruchomosci.pl - domena podpieta do serwera z przekierowaniem na katalog zamienie_nowa - tu nie działa

Zauważyłem,że nie działają skryptu w jquery, które mają coś pobrać z pliku jak właśnie catcomplete czy $.post

Czy ktoś wie o co chodzi ?
Go to the top of the page
+Quote Post
markuz
post
Post #9





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Kod
onload="mapaStart()"

Kod
Uncaught ReferenceError: mapaStart is not defined

Kod
XMLHttpRequest cannot load http://pisipolska.home.pl/zamienie_nowa/search.php?term=War. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://zamienie-nieruchomosc.pl' is therefore not allowed access.

Czasami warto otworzyć konsole jak się pisze skrypty w JavaScript.

Głównie chodzi o to, że dla bezpieczeństwa domyślnie nie można wykonywać requestów na inne domeny. Poczytaj o Access-Control-Allow-Origin i dodaj odpowiedni nagłówek - albo wykonaj request na tą sama domene.
Go to the top of the page
+Quote Post
rafiksq
post
Post #10





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


O tym nie wiedziałem (IMG:style_emoticons/default/smile.gif)

Dodałem do search.php : header('Access-Control-Allow-Origin: *'); ale też nie działa
Go to the top of the page
+Quote Post
markuz
post
Post #11





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Widzę, że nie lubisz korzystać z konsoli - ostatni raz zrobie to za Ciebie:
Cytat
XMLHttpRequest cannot load http://pisipolska.home.pl/zamienie_nowa/search.php?term=Wa. The 'Access-Control-Allow-Origin' header contains multiple values 'http://zamienie-nieruchomosc.pl, *', but only one is allowed. Origin 'http://zamienie-nieruchomosc.pl' is therefore not allowed access.


Nagłówki teraz wyglądają tak:

Cytat
Access-Control-Allow-Headers: origin, x-requested-with, content-type
Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
Access-Control-Allow-Origin: http://zamienie-nieruchomosc.pl
Access-Control-Allow-Origin: *


Nie może być 2 razy Access-Control-Allow-Origin.

Ten post edytował markuz 22.11.2015, 13:55:38
Go to the top of the page
+Quote Post
rafiksq
post
Post #12





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Dzięki ale dla mnie to już wyższa szkoła jazdy, dzięki za pomoc, mam to wstawić do htaccess?
Go to the top of the page
+Quote Post
markuz
post
Post #13





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Pokaż plik search.php oraz .htaccess z http://pisipolska.home.pl/zamienie_nowa/
Go to the top of the page
+Quote Post
rafiksq
post
Post #14





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


  1. htaccess:
  2. Access-Control-Allow-Headers: origin, x-requested-with, content-type
  3. Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
  4. Access-Control-Allow-Origin: <a href="http://zamienie-nieruchomosc.pl" target="_blank">http://zamienie-nieruchomosc.pl</a>
  5. Access-Control-Allow-Origin: *
  6.  
  7. ErrorDocument 404 <a href="http://zamienie-nieruchomosc.pl" target="_blank">http://zamienie-nieruchomosc.pl</a>
  8.  
  9.  
  10. Options FollowSymLinks
  11. RewriteEngine On
  12. RewriteRule ^(.+),([0-9]+)$ index.php?section=show_offer&id=$2 [L]



  1. header('Access-Control-Allow-Headers: origin, x-requested-with, content-type');
  2. header('Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS');
  3. header('Access-Control-Allow-Origin: <a href="http://zamienie-nieruchomosc.pl&#39%3b%29;" target="_blank">http://zamienie-nieruchomosc.pl');</a>
  4. header('Access-Control-Allow-Origin: *');
  5.  
  6. include("include/mysql_connect.php");
  7.  
  8. if (isset($_GET['term'])){
  9. $tab = array();
  10. @mysql_query("SET NAMES utf8");
  11.  
  12. $result1 = mysql_query("SELECT id, name FROM geo_province WHERE name LIKE '".$_GET['term']."%' ORDER BY name");
  13. while ($row1 = mysql_fetch_array($result1)) {
  14. $tab[] = array('label'=>$row1['name'],'category'=>'województwo:');
  15. }
  16. $result2 = mysql_query("SELECT id, name, province FROM autocomplete WHERE name LIKE '%".$_GET['term']."%' ORDER BY name");
  17. while ($row2 = mysql_fetch_array($result2)) {
  18. $tab[] = array('label'=>$row2['name'],'category'=>$row2['province']);
  19. }
  20. }
  21. echo json_encode($tab);





Go to the top of the page
+Quote Post
markuz
post
Post #15





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Usuń
Kod
Access-Control-Allow-Origin: <a href="http://zamienie-nieruchomosc.pl&#39%3b%29;" target="_blank">http://zamienie-nieruchomosc.pl</a>

W htaccess i w pliku php
Go to the top of the page
+Quote Post
rafiksq
post
Post #16





Grupa: Zarejestrowani
Postów: 162
Pomógł: 0
Dołączył: 8.11.2006
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


Dzięki jeszcze raz za zaangażowanie.

WKlejając kod tutaj system automatycznie dodał łącze <a> w rzeczywistości jest tylko sam adres.

Udało mi się (IMG:style_emoticons/default/smile.gif)

htaccess:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>


plik php w odwołaniu jquery:
header('Access-Control-Allow-Headers: origin, x-requested-with, content-type');
header('Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Origin: *');

wszystkie pozostałe zapytania jquery zmieniłem z get i post na ajax.

Wszystko działa (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 21:00